diff --git a/README.md b/README.md index 9b9f38f..fec94e5 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,23 @@ Event Man(ager) Your friendly manager of attendees at an event. +EventMan will help you handle your list of attendees at an event, managing the list of registered persons and marking persons as present. + +Main features: +- quickly mark a registered person as an attendee. +- easy way to add a new person, if it's already known from a previous event. +- fast and simple way to add a completely new person. +- it's easy to import EventBrite CSV files. +- RESTful interface +- ability to run triggers to respond to an event (e.g. when a person is marked as attending to an event) + +See the *screenshots* directory for some images. + Development =========== -See the DEVELOPMENT.md file for more information about how to contribute. +See the *docs/DEVELOPMENT.md* file for more information about how to contribute. Technological stack @@ -23,16 +35,6 @@ The web part is incuded; you need to install Tornado, MongoDB and the pymongo mo If you want to print labels using the _print\_label_ trigger, you may also need the pycups module. -Coding style and conventions -============================ - -It's enough to be consistent within the document you're editing. - -I suggest four spaces instead of tabs for all the code: Python (**mandatory**), JavaScript, HTML and CSS. - -Python code documented following the [Sphinx](http://sphinx-doc.org/) syntax. - - Install and run =============== diff --git a/DEVELOPMENT.md b/docs/DEVELOPMENT.md similarity index 88% rename from DEVELOPMENT.md rename to docs/DEVELOPMENT.md index 7f20c8a..97f6fa9 100644 --- a/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -7,15 +7,6 @@ Definitions: - **attendee**: a person who actually *show up* (checked in) at the event -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) (**DONE**) -- mark registered persons as present (including them in the list of attendees) (**DONE**) -- execute actions when an attendee shows up or enters/leaves the event (**DONE**) -- show information and statistics about registered persons, attendees and events (**DONE**) - - Paths ===== @@ -52,6 +43,8 @@ The paths used to communicate with the Tornado web server: - /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 GET - return the complete list of persons registered for the event +- /events/:event_id/persons/:person_id GET - return information about a person related to a given event (e.g.: name, surname, ticket ID, ...) - /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 @@ -61,6 +54,8 @@ The paths used to communicate with the Tornado web server: Notice that the above path are the ones used by the webapp. If you plan to use them from an external application (like the _eventman_ barcode/qrcode scanner) you better prepend all the path with /v1.0, where 1.0 is the current value of API\_VERSION. The main advantage in doing so is that, for every call, a useful status code and a JSON value is returned (also for /v10/login that usually would show you the login page). +Also, remember that most of the paths can take query parameters that will be used as a filter, like GET /events/:event_id/persons?name=Mario + Triggers ======== @@ -147,6 +142,16 @@ To generate the hash, use: print utils.hash_password('MyVerySecretPassword') +Coding style and conventions +============================ + +It's enough to be consistent within the document you're editing. + +I suggest four spaces instead of tabs for all the code: Python (**mandatory**), JavaScript, HTML and CSS. + +Python code documented following the [Sphinx](http://sphinx-doc.org/) syntax. + + TODO ==== diff --git a/screenshots/eventman_event.jpg b/screenshots/eventman_event.jpg new file mode 100644 index 0000000..1da7cec Binary files /dev/null and b/screenshots/eventman_event.jpg differ diff --git a/screenshots/eventman_persons.jpg b/screenshots/eventman_persons.jpg new file mode 100644 index 0000000..032edb8 Binary files /dev/null and b/screenshots/eventman_persons.jpg differ