Day 24: What's next?
Previously on symfony
For twenty-three days, we have been building a web 2.0 application in PHP5 with the symfony framework. Yesterday was the last step of the askeet development, and it is fully i18n compatible. If you browse to www.askeet.com, what you will see is the result of roughly 3 days (24 hours) of work with symfony. As you see it, the application is ready to answer your questions about chocolate, sex, astronomy, or PHP programming.
But more than that, askeet is an open source project, and what comes next is, hopefully, a long story.
Use it
The askeet website is open to the public. You can advertise it and talk about it to your friends and relatives. Some of the test contributions will be removed, but most of the existing questions and user accounts will remain. Askeet is a great tool to find answers - provided that many users visit it. So spread the word.
Opening an account is fast and easy, and requires nothing but a nickname, a password, and an email. It allows you to declare interest about questions, to ask new questions, and to rate answers. The email address will not be used for any kind of advertising, ever.
Subscribe to the RSS feeds to keep informed about the latest questions, or about the answers to the questions you asked.
Askeet can also be a way to make some money, since user profiles can be linked to a Paypal account. If a user finds your contributions useful, he/she can thank you by granting you a small donation.
All in all, there is no good reason not to use askeet everyday. It would be our great pleasure if you bookmarked the site, visited it regularly, and contributed questions and answers.
Install it
Askeet is more than a website, it is an open-source project. As of today, askeet can already be downloaded and installed anywhere. Today's version is tagged 1.0, it is free to use, adapt, customize, and integrate in third party applications.
This is technically possible because askeet is based on PHP5 and symfony, and this is legally possible because askeet is an open-source project on its own, published under the MIT license.
Download
To install askeet, you have two options:
- Download the 1.0 release as a .tgz archive from the symfony-project website
- Do a checkout from the 1.0 release in the SVN repository into your own
askeet
folder.
You will have a symfony project, ready to run as soon as you configure your web server.
note
The full source can also be browsed online in the askeet trac.
Documentation
The 24 advent calendar tutorials will still be available online in the symfony project website.
If you feel like translating them to a foreign language, you can also find the Markdown version of the tutorials on the symfony Subversion repository. We will be delighted to host any foreign translations of the askeet tutorials on our repository. The symfony site uses a Markdown converter which does the formatting, media inclusion and syntax coloring. So just send us a translated Markdown version, calling the same media, encoded in utf-8, and we will publish it.
note
Before starting a translation, please write a post in the askeet forum so that two people don't start the translation at the same time. And commit the chapters one by one as you translate them, so that the content can be made available sooner.
File structure
After uncompressing the askeet project archive, you will obtain a list of directories which are the classic file tree structure of a symfony project. It is explained in detail in the file structure chapter of the symfony book.
At the time of the 1.0 release, the askeet project contains one application (called 'frontend
') and 11 modules:
modules/ administrator answer api content feed mail moderator question sidebar tag user
Data model
Askeet is compatible with MySQL, PostgreSQL, Oracle, MSSQL, and all database for which a Creole driver exists. Here is the data model of the askeet application as of release 1.0:
You can find a SQL query that will add these tables to any existing database in askeet/data/sql/lib.model.schema.sql
.
There is a set of test data in askeet/data/fixtures/
. If you want to use it to populate your database, call:
$ php batch/load_data.php
...from the root directory of the project.
Contribute to it
The askeet application is a living open-source project. As such, we hope that it will continue to improve, but we need your help for that.
Askeet was developed by Fabien Potencier, who is also the lead developer of the symfony project. As the framework already represents an important amount of work, contributions from askeet enthusiasts are needed to make the project live. And there is much to do! If you are a developer interested in contributing to askeet, have a look at the following to-do list:
- Additional features:
- Alternative site designs to propose more than one presentation. This is mostly a graphical design and CSS coding job.
- User-contributed Captchas, under the shape of a simple question (like "how many fingers in one hand?"), to avoid automatic spam on question contributions.
- Preview of questions before publication to avoid big typos
- Confirmation of user subscription by email (optional)
- Auto login (with a cookie)
- RSS Feed of reports for Moderators
- Ajax Pagination of the contributions/interests in the User profile page
- Popular algorithm so that the questions of the front page can change over the time
- ...
- Project strengthening:
- Unit tests
- Code documentation in PHP doc format
- Installation manual
In addition, there are or will be bugs to detect, track and fix.
For enhancements and bugs, please use the askeet ticketing system. You can keep track of all the askeet changes by consulting the project timeline regularly.
All contributions are welcome. Regular contributors with a good understanding of the project will quickly be granted a right to commit to the SVN repository.
Finally, if you want to discuss about askeet, you have the choice between the askeet forum section in the symfony project website, or a dedicated wiki at trac.askeet.com/trac/wiki.
Acknowledgements
Fabien Potencier (lead developer of askeet and symfony)
François Zaninotto (writer of the tutorials) would like to thank John Christopher for his great help on rereading each of the tutorials to put them in good English, Bruno Klein for his work on the askeet design, and his wife for the incredible patience and tolerance she showed during 24 days...
See you soon
That's about it. It's been a pleasure developing and writing this for you, we hope that askeet will live long and that lots of people will start using symfony for their web projects.
Merry Christmas to you all.
This work is licensed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License license.