|
@@ -11,20 +11,96 @@ Requirements:
|
|
|
- create a new event (**DONE**)
|
|
|
- create a new registered person manually (**DONE**)
|
|
|
- associate to an event a list of registered persons, creating them if needed (manually and importing from external sources)
|
|
|
-- mark registered persons as present (including them in the list of attendees)
|
|
|
+- mark registered persons as present (including them in the list of attendees) (**DONE**)
|
|
|
- mark when an attendee enters/leaves the event
|
|
|
- execute actions when an attendee shows up or enters/leaves the event
|
|
|
- show information and statistics about registered persons, attendees and events
|
|
|
|
|
|
|
|
|
+Paths
|
|
|
+=====
|
|
|
+
|
|
|
+Webapp
|
|
|
+------
|
|
|
+
|
|
|
+These are the path you see in the browser (AngularJS does client-side routing: no request is issued to the web server, during navigation, if not for fetching data and issuing commands):
|
|
|
+
|
|
|
+- /#/events - the list of events
|
|
|
+- /#/event/new - edit form to create a new event
|
|
|
+- /#/event/:event_id - show information about an existing event (contains the list of registered persons)
|
|
|
+- /#/event/:event_id/edit - edit form to modify an existing event
|
|
|
+- /#/persons - the list of persons
|
|
|
+- /#/person/new - edit form to create a new person
|
|
|
+- /#/person/:person_id - show information about an existing person (contains the list of events the person registered for)
|
|
|
+- /#/person/:person_id/edit - edit form to modify an existing person
|
|
|
+- /#/import/persons - form used to import persons in bulk
|
|
|
+
|
|
|
+
|
|
|
+Web server
|
|
|
+----------
|
|
|
+
|
|
|
+The paths used to communicate with the Tornado web server:
|
|
|
+
|
|
|
+- /events GET - return the list of events
|
|
|
+- /events POST - store a new event
|
|
|
+- /events/:event_id GET - return information about an existing event
|
|
|
+- /events/:event_id POST - update an existing event
|
|
|
+- /events/:event_id DELETE - delete an existing event
|
|
|
+- /persons GET - return the list of persons
|
|
|
+- /persons POST - store a new person
|
|
|
+- /persons/:person_id GET - return information about an existing person
|
|
|
+- /persons/:person_id POST - update an existing person
|
|
|
+- /persons/:person_id DELETE - delete an existing person
|
|
|
+- /events/:event_id/persons/:person_id PUT - update the information about a person related to a given event (e.g.: if the person attended)
|
|
|
+- /persons/:person_id/events GET - the list of events the person registered for
|
|
|
+- /ebcsvpersons POST - csv file upload to import persons
|
|
|
+
|
|
|
+
|
|
|
+Database layout
|
|
|
+===============
|
|
|
+
|
|
|
+Information are stored in MongoDB. Whenever possible, object are converted
|
|
|
+into integer, native ObjectId and datetime.
|
|
|
+
|
|
|
+events collection
|
|
|
+-----------------
|
|
|
+
|
|
|
+Stores information about events and persons registered for a given event.
|
|
|
+
|
|
|
+Main field:
|
|
|
+
|
|
|
+- title
|
|
|
+- begin-data
|
|
|
+- begin-time
|
|
|
+- end-date
|
|
|
+- end-time
|
|
|
+- persons - a list of information about registered persons
|
|
|
+ - persons.$.person_id
|
|
|
+ - persons.$.attended
|
|
|
+ - persons.$.name
|
|
|
+ - persons.$.surname
|
|
|
+ - persons.$.email
|
|
|
+ - persons.$.email
|
|
|
+ - persons.$.ebqrcode
|
|
|
+
|
|
|
+
|
|
|
+persons collection
|
|
|
+------------------
|
|
|
+
|
|
|
+Basic information about a person:
|
|
|
+- persons.name
|
|
|
+- persons.surname
|
|
|
+- persons.email
|
|
|
+
|
|
|
+
|
|
|
TODO
|
|
|
====
|
|
|
|
|
|
Next to be done
|
|
|
---------------
|
|
|
|
|
|
-- import persons from CSV
|
|
|
-- introduce the concept of registered persons and attendees in the GUI and in the database
|
|
|
+- easy way to add a new person to an event
|
|
|
+- search on both name and surname, for persons
|
|
|
- add the minimum required fields to lists and detailed pages for persons and events
|
|
|
- handle datetimes (on GUI with a calendar and on the backend deserializing ISO 8601 strings)
|
|
|
- modal on event/person removal
|