People organize in co-ops to purchase food together. This web app must facilitate the communication between the managers of the co-ops and the rest of the members. This means, in general, that the managers input the information on available products and members place their orders. This happens weekly.
This web app must serve groups of people which organize to purchase food together. From now I will call these groups "co-ops". The co-ops operate in the following way.
Weekly, one person from a co-op informs his co-op of the available products to purchase and their price. I will call this person the "manager". Each member of the coop can then inform the manager what he would like to order and how much. After the orders by the members have been made, the manager then buys the food products from the supplier according to the sum quantities of the orders by the members. When the food has arrived the members come to collect it physically and pay for it.
This web app must provide an infrastructure for the following things to happen on-line in it:
* The manager informs the members of the available products and their prices. These can be per unit or per weight (metric system).
* The members place their orders.
* The manager sees all the orders made by the members and also a report summarizing them all.
There must be a good permissions system based on user names and passwords. Each user gets only the permissions which are necessary for him to use the app. For example, the managers get full permissions on their coops, the coop members which are not managers get only to view and change their own orders, etc.
There must be an interface for me to add/remove coops and their managers, change their passwords and so on. I need also the ability to make anyone a manager for a coop and to make anyone an administrator of the app.
Managers add members to co-ops by entering in a e-mail addresses, names, contact details and notes. Member lists must be printable.
Managers can choose to assign other users of the coop as managers and they can remove this role from themselves but there must be at least one manager.
All individual orders and manager summaries must be printable.
When the manager publishes the products available and the prices on them, an e-mail message is sent to all members of that coop about this. It doesn't have to contain all the information, but only a link to the page where they can make/change their orders.
Managers must be able to lock the orders so that members would not be able to make changes to their orders any more in that round (usually a week period). Members can still see their orders and managers can still edit member's orders after the lock (this is so that members could contact managers and ask for changes).
Each round of orders is a new one and all the prices and orders from previous rounds is kept in the database, available to the manager for viewing and printing.
The app must be developed with the strings in English but there must be a way for me to translate it to Hebrew. The app must support RTL perfectly!
In the order forms the quantities must be validated to be reasonable. Some products are by weight, others by volume and still others by units. The manager enters that information, of course.
When the manager enters the products and their prices, he can easily add products which he has added in previous rounds along with their last prices, which he of course can then change. the manager can also remove items from this.
All printable pages print out in a nice layout on A4 pages.
Must be valid XHTML and CSS all throughout the app.
Must be easy to use and simple even for not-so-computer-oriented people, as much as possible.
The design should be minimalistic in nature, usable and pleasant.