the code should be more modular (HTML generation)
In the current state of the code, data retrieval, request handling and HTML render are entangled together, which makes it hard to maintain and improve.
A few pages now use Template::Toolkit, which allows us to decouple HTML rendering from data processing and make the code clearer.
Here's the checklist of routes handled by ddtss-cgi:
- 
/displays the list of languages
- 
/createlogindisplays the user creation form
- 
/userlist/<lang>displays the list of users for<lang>
- 
/teamconfig/<lang>displays the language config form for<lang>(admin only)
- 
/logout
- 
/login
- 
/rosettaimport❓ I don't know the purpose of this route
- 
/suggestion❓ I don't know the purpose of this route
- 
/messageto/<user>displays the small popup page to send a message to a user
- 
/messagetoteam/<lang>displays the small popup page to send a message to a team (admin only)
- 
/messagetoprojectdisplays the small popup page to send a global message (admin only)
- 
/delmessage
- 
/delteammessage
- 
/delprojectmessage
- 
/<lang>displays the main page for<lang>
- 
/<lang>/forexternalreview❓ I don't know the purpose of this route
- 
/<lang>/translatedisplays the description translation form (uses common parts with/<lang>/forreview)
- 
/<lang>/forreviewdisplays the description review form (uses common parts with/<lang>/translate)
- 
/<lang>/translateddisplays the translation logs
- 
/<lang>/wordlistdisplays the wordlist for<lang>
- 
/fetchdisplays the waiting screen when a description is being fetched
Some pages should be very easy to migrate (<lang>/translated for instance). If contributors are interested, I can split this issue and assign a (perceived) level of complexity on each sub-issue.
I intend to tackle the harder half to let opportunities for first contributions.
Edited  by Thomas Vincent