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?