The application below is designed to collect daily updates via e-mail from members of a team and then "roll them up" and send them out as a sort of "digest" to all members of the team.
Ideally, I'd like this to be built in Google App Engine. It definitely needs to be web-based and easy to deploy to a hosting environment. PHP and MySQL are acceptable, but like I said preference will be given to solution providers who can build this with Google App Engine.
1. web page for creating new teams and editing existing ones:
2. GET UPDATE email. For each person on each team, a daily email gets sent out at NOON (weekdays and weekends). This is the GET UPDATE email. There are some text markers in this email and the user is expected to type their update within those text markers before midnight that day (before the TEAM UPDATE email is sent out). This e-mail contains the individuals last seven days of updates below the markers. Mail clients supported should include Gmail/Google Mail. Submitted updates are parsed and stored in the database on the server by project, by person.
3. TEAM UPDATE email. At midnight every day, an e-mail summarizing every team member's updates is sent out to all the other team members. The subject line contains the team name, the date that the update covers. If someone didn't submit an update, their section of the update shows up at the top of the email. And their section reads in all caps, "DID NOT SUBMIT AN UPDATE!" The people who did submit updates should be presented alphabetically. URLs entered into people's updates should be clickable in the TEAM UPDATE email that gets sent out.
- option to change frequency from daily to weekly for any particular team
- add a holiday calendar (skip sending emails on holidays)
- an option to disable sending e-mails out on weekends/weekdays (or a tool to fine tune the frequency with which emails get sent to users)
- a "view history" link next to each team and team member -- displays a paged view of their history. Maybe displays them on a calendar...
- what if someone is added to a team? that's easy, when someone's added, an entry gets added into the database and their history starts that day.
- what if someone gets removed from a team? don't delete the history, but obviously stop displaying them in the TEAM UPDATE and don't send them the GET UPDATE email every day.
- what if someone is removed from a team but added back again later? well, the easy part is you start storing their updates again. but should a record be kept of people being added to and removed from teams?
- what's the purpose of the "Team Lead" designation? There's isn't really one at this point.