ReCal Project
Timeline
Weekly status updates
Week One
Tasks:
Decide how to distribute work among group members UI progress: Find OSS calendar component Make sure it's easy to interface with -- this will feed into decisions re: database schema Make sure it's beautiful Build sample dashboard page w/ cal items Finish database schema Map out what queries will be like for main pages, then check to see if this is sane to do with our schema Make sure it will play well with the calendar component Implement database schema in Django models If time: manually create some fake data and test the R of CRUD with our new UI Query people to see if they would prefer one dashboard or one page per course
Week Two
Accomplished this week: we accomplished the big tasks -- creating our DB schema and a prototype design -- and started implementing the DB schema in Django models
Tasks for next week:
Create user authentication system Create user profile system -- i.e. once a user logs on, they can sign up for classes and manage the sections they are in Create add event page Write script to populate user dashboard with upcoming events -- without integrating into our UI yet If we have time, integrate that user dashboard output into our prototype UI
Week Three
Accomplished this week:
Created user authentication system Fixed recurring events part of DB Finalized Django, Postgres, and Heroku setup Wrote script to fetch events for user dashboard Integrated fetched events with our prototype UI Created user profile system to hold user metadata Create profiles automatically and force users to choose >1 course before using site Created form to choose courses UI improvements
Tasks for next week:
Finish our queries for adding and editing events (need to test) Forms for adding and editing events "Hide" button on events -- i.e. toggle event visibility per user Improve profile page to enable name editing and choosing custom sections (besides All Students section) If we have time: Implement prompting with similar events when you're adding a new event If we have time: Allow users to approve recently added or changed events
Week Four
Accomplished this week:
Logout button Signing up for custom sections OIT scraper (holding off on event creation bit because recurring events is pending) Hiding events Add events forms are finished Get everyone set up with database migrations Modifying events works Create save button Let people edit their names in profile page Started autocomplete for courses page Intelligent revision selection -- if a user has edited since the last approved revision, show them their own edits Polling for server-side changes every 10 seconds Persisting client-side changes and pushing once every 10 seconds Saving dashboard state of open events UI tweaks -- better forms and popups, validation for max length of fields, sidebar, various bugfixes Outlined most of recurring events and find similar events business logic Find similar events UI
Tasks for next week:
Finish recurring events business logic -- almost done Resolve time handling issues UI fixes (all in github issues right now) AJAX plumbing between "find similar events" backend and frontend Once recurring events are finished on backend, update scraper to create events, not just courses and sections Color coding Finish autocomplete for courses page UI niceties -- have help text if there's nothing on your dashboard, create front page before logging in Revision approval by users Reach out to a prof to beta test with their class
Week Five
Accomplished this week:
Rewrote current event creation system, and wrote in recurring events logic -- now we can create all kinds of events Intelligent autocomplete for classes New profile page that uses autocomplete and has calendar view (like ICE) Put choose-sections functionality into new profile page Save prompt is brighter (yellow highlighting) All sorts of UI bugfixes for smooth experience Data scraper now does more than classes: pulls in sections and events from OIT data, creates recurring event series under Community User, and watches out for stuff that has already been scraped Started researching Chrome Extension options Started working on Color Coding of courses Similar events UI Similar events backend fixes iOS work started (may switch to in-browser stylesheet for now)
Tasks for next week:
Identify confusing actions, like choosing similar events, and add help text Fix performance issues -- optimize queries and potentially don't load all events System for confirming unapproved revisions Minor UI enhancements: loading indicators everywhere, recurring events UI, better edit form icons, "not synced" text, vertical align for multiple events' snap to sidebar, prompt if event updated since started editing (behind-the-scenes is ready, just need prompt text), change what info is shown in agenda (separate event titles and course names), rearrange similar events picker, warn when closing tab with unsaved changes Chrome Extension (embedded iframe with loading indicator), Mobile CSS that only shows agenda
Week Six
Accomplished this week:
Identify confusing actions, like choosing similar events, and add help text Fix performance issues -- optimize queries and potentially don't load all events System for confirming unapproved revisions -- backend is done, UI is almost there Minor UI enhancements: loading indicators everywhere smarter polling intervals recurring events UI "not synced" text change what info is shown in agenda (separate event titles and course names) updates to similar events picker warn when closing tab with unsaved changes viewing hidden events agenda and calendar customizations Chrome Extension done Mobile version ready Color coding New name -- Recal (like Rethinking Calendar; we help with event recall). recal.today or a similar domain?
Tasks for next week:
Test with real users, and incorporate their feedback (especially in form of UI help text) UI: Landing page, undo button, better date/time pickers More code optimization -- code review Be able to start planning next semester's classes?