Everything still feels a bit in the air right now, so Shreya and I decided we should really set up the variables and interactions between all our code more cocretely.
- HTML
Okay so we will have a home page that gives user an option to log in with their ID or create a new profile. We should decide whether we will use separate Jinja template for the profile or just use javascript to recreate the page.
- Profile
So the basic idea behind someone creating a profile is for us to have unique users, and for people to be able to log in with their IDs and have their schedule, name, and groups known already.
So, variables that the user needs to provide in this form will be stored in a JavaScript object (pretty much a dictionary), and fed back to the python end through JSON, where it will be saved into the dictionary for later loading. Variables will include:
-
ID
-
First name
-
Last Name
-
Grade - we should color these differently...
-
Schedule (what's the best way to hold this for everyone?) We need to make sure to finalize this, otherwise it will be a big mess when none of our separate code can communicate. Shreya and I both thought of putting 10 separate variables for each period in the JS Object, where one could type in the floor or room one is in in said variable (which would be fed back later, when loading the map of all people). This obviously isn't the most efficient...maybe it would be better to store a list with 10 indeces, declaring what floor someone is on during each period.
-
Groups: do we definitely want to do this? It seems like a feature we can add later for simplicity's sake. The basic idea is we can subscribe to different groups, and show/hide people bubbles from a particular group. I'd say we should just discuss this later and not worry about it for the time being.
-
Teachers: for teacher mapping and their free periods we will basically need to parse through the list Z gave us and add them to our own dictionary.
-
The basic flow of the project
This is important to discuss, because I found myself getting really lost with what exactly we were trying to do when I coded Saturday. So the basic concept is that someone will create a profile, and then be redirected to the main page which consists of 10 maps in separate svg files.
People are depicted as differently colored bubbles based on what floor they should be in. So if someone has a 1st class on the 10th floor, when it is 8:15, their bubble will show up on the 10th floor. So when you log on, you see your own bubble and you can overwrite your location if it's different than what your schedule says. All the students who have signed up and the teachers who have been entered will be pre-loaded, so that there will be a lot of bubbles. My plan is to be able to click on a particular bubble, and have it's profile show up in the bottom, as well as allowing you to show/hide bubbbles of a particular grade (and later group, when we add that feature...maybe we will have a search bar for different keywords? What do y'all think?)
We should worry about overwriting location later, becasue it is another layer of complexity, so for the very first step of the project, let's say stuff we should finish by Friday night/Saturday morning is having a profile system where users enter their schedule and are then automatically put on the map as bubbles based on what time it is. (We can have some script that automatically checks time later, but for the time being, i think it's simpler if the html includes a drop down where you can just denote the period.)