These are the paths you see in the browser (VueJS does client-side routing: no request is issued to the web server, during navigation, if not for fetching data and issuing commands):
Example of /attendees/:id:
{"day": "2017-01-20", "name": "Attendee Name", "group": "Group Name", "updated_by": "587a7c79dff0d71c89211dc4", "created_at": "2017-01-20 13:57:26.029000", "updated_at": "2017-01-20 13:57:26.029000", "created_by": "587a7c79dff0d71c89211dc4", "_id": "58820936dff0d740dee647a4"}
Example of /days/:day:
{"day": "2017-01-20", "groups": [{"group": "Group Name", "attendees": [{"day": "2017-01-20", "name": "Attendee Name", "group": "Group Name", "updated_by": "587a7c79dff0d71c89211dc4", "created_at": "2017-01-20 13:57:26.029000", "updated_at": "2017-01-20 13:57:26.029000", "created_by": "587a7c79dff0d71c89211dc4", "_id": "58820936dff0d740dee647a4"}]}]}
Information are stored in MongoDB. The _id key values are converted into native ObjectId.
The main information are stored in the attendees collection.
The code is so divided:
+- ibt2.py - the Tornado Web server
+- index.html - the html page that will be injected with the webApp
+- monco.py - backend to connect to a MongoDB instance
+- utils.py - various utilities
+- build/ - webpack and node configuration
+- dist/ - output of the build command will be put here
+- src/ - webApp sources
|
+- main.js - kickoff the VueJS webApp
+- App.vue - main component of the webApp
+- *.vue - other webApp components
+- state.js - shared state of the webApp
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 syntax.
A: because science! (but mostly because I already had most of it ready from other projects)
Q: .vue files? What's that?
A: Vue single-file components; a webpack plugin will take care of translating them into stuff that can be digested by a browser.
Q: I've added a new path to the backend, and now the hot reload server is not working!!1!!
A: that's not even a question. Anyway, add the path to dev.proxyTable in config/index.js
Q: will it be integrated with Slack?
A: hell, no.