Timedown

May 26, 2021 · View on GitHub

Heroku Link *Please look at the dummy profiles below to sign in with.

Timedown is a flexible time management app designed to cultivate a healthy work-life balance while staying on top of your deadlines. It allows a user to submit a task and uses the information to determine how they should allocate their time spent working on it so they finish before the due date. It then synchronizes with a user's google calendar to suggest time blocks that fit into their schedule.

To Use

On Heroku

Timedown has not been officially verified by Google yet, so only designated test users can log in and try out this app. In order to try this app, you will need to either email the developer and ask to be added as a test user, or try out one of these dummy test user accounts.

Sunny

  • Email: sunny.codetester@gmail.com
  • Password: qwerd123
  • Persona: Sunny Codetester is a busy, 21-year-old college student working a part-time job as a kitchen assistant. Wanting to build up her portfolio and work experience, she's been trying to squeeze in time to do freelance design work.

Cody

  • Email: cods7699@gmail.com
  • Password: trewq321
  • Persona: Sir Cody is knight from ye olden times, accidentally brought to the future via time machine several years back. He got a job as a consultant for movies and tv shows set in the middle ages. Sir Cody is managing to do surprisingly well for himself, given his strange circumstances, and is even considering writing a book.

*You are free to add/remove events from their google calendars

*Please don't add anything innapropriate/NSFW

*Profile pictures for these accounts were generated by thispersondoesnotexist.com


Locally

  1. You will need to install and run Docker.
  2. Fork and clone this repo
  3. Follow the first 15 minutes of this video to set up an API key and Client ID in order to use the Google API.
  4. Create a .env file in the app/ directory
  5. Add two lines...
REACT_APP_API_KEY=<copy/paste your api key here>
REACT_APP_CLIENT_ID=<copy/paste your client id here>
  1. In your CLI, from the root directory, run the command npm run db:init to set up the database
  2. Also from your root directory, run the command npm start
  3. Timedown will be running on localhost:3000

Technologies

  • Technologies
  • Postgresql Database
  • Express
  • React.js
  • Node.js
  • React Google Calendar API
  • Google Calendar API
  • OAuth 2.0 API

MVP

Users should be able to...

  • Log in with their Google account
  • Synchronize with their Google Calendar.
  • Set custom scheduling settings
  • Submit new tasks
  • Generate suggested time blocks for a task based on est. time needed and due date
  • Insert suggested time blocks as events into into their Google calendar.

Nice-to-haves

  1. Manually adjust time blocks on their calendar
  2. Check-off the time blocks when completed
  3. Clock-in/Clock-out feature
  4. Pomodoro timer that triggers when clocked-in.
  5. Push notifications for upcoming tasks
  6. Option to recalibrate time blocks when you miss or delete a block
  7. Indicators on tasks that show whether or not you’re on track to finish them by their deadline.
  8. Pattern recognition/insights feature.

Technical Risks

  • Google Calendar API might be too complicated to implement in time

    If this turns out to be the case, I will instead use a simple calendar API (such EZCalDev), create dummy account, and populate it with dummy events in order demonstrate the core features of the app.

  • Running out of time to set up the customer User settings feature

    In this case, I can hard-code in what would be the default scheduling settings, such as giving a 15-minute buffer around pre-existing events.


Data Schema

Data_Schema_TIMEDOWN

Userflow

userflow_TIMEDOWN


Landscape Wireframes

smallwireframes_landscape_TIMEDOWN smallwireframes_landscape_TIMEDOWN2


Mobile Wireframes

smallwireframes_mobile_TIMEDOWN smallwireframes_mobile_TIMEDOWN2