We would like to create a portal using Google App Engine technology.
Portal should manage contacts and their details as well as some of their emails sent via multiple tool using the following protocoles:
Contacts attributes are name, first name, address, one or multiple email addresses among which one is primary for correspondance.
Emails attributes are the traditional ones (UTF8 to be used).
Contacts may send one or multiple emails for storage directly by CCing the SMTP address of portal or by using some special tools that authenticate properly and then their own password as a mean of authentication but also the protocole id/password too.
Users can define themselves as contacts in the portal by filling in a form - some security has to be defined to avoid robots though.
Portal should offer customization possibilities to users (layout, colors, fonts, size).
Administrators can manage these users through the portal and may flag some end users as administrator. May disable, update or delete contacts.
Users can upload messages with their related attachments manually too.
Administrators can upload messages for some users.
Users can edit all their manually or sent messages.
Administrators can edit any contact message.
Portal should allow portlet definition easily as well as lay them out as wished by users or administrators.
Some portlets should allow the display of some urls such as google news, search, etc.
Portal should display in a tree structure the various contacts by countries (Countries, Contacts, Messages -by date-).
Messages should be stored in a database and should be text searchable. The same applies to their attachments (mostly pdf and Microsoft office).
Administrators may define multiple channels for each protocole. For example today administrator defines 2 HTTP urls for message submission and tomorrow 3 additional ones without having to code anything but through a specific portlet. The same applies to other protocoles.
The solution should also allow the running of two jobs - One job to count messages and their size, the other to move messages to archive if messages are more than 10days old.
Entity beans should be used to manage countries, contacts and messages.
Message beans to be used for all messages sent via JMS protocole.
Session beans to be used for all connections.
Timer beans to be used for above jobs - a portlet to be defined to manage or suspend these jobs as well as redefine their time specs.
Time specs are:
- hourly period between two specific times (START and END) say for eg. between 10AM to 12AM ANY DAY,
- every specific day of the week between two specific times
- every specific day of the month between two specific times
- every specific day of the year between two specific times
- at a precise day for eg. on the 11/09/2012 between two specific times.
If START is not specified then job has to start right away.
IF END is not specified then job should not finish.
All should be compliant to standards and using eclipse.
Technology stach to use:
JBoss Application Server
JBoss Portal 7 and 6 (under Windows Family and XP)
Java and J2EE, Portlet
HTML, JSP, AJAX
Eclipse fully working workspace with documentation on how to make Eclipse working on that workspace.
Fully packaged deliverable.