GithubHelp home page GithubHelp logo

mordecaio / rootine-frontend Goto Github PK

View Code? Open in Web Editor NEW

This project forked from schoolofcode/final-project_front-end-status-418

0.0 0.0 0.0 9.26 MB

School of Code - Status 418 Final Project

JavaScript 94.89% CSS 4.53% HTML 0.58%

rootine-frontend's Introduction

Rootine - Team Status 418

🌱 Plant the seeds of good habits 🌱

“Sure, it’s easy to start a new habit, but how do you make it stick?”

Overview

Open app

For our final project in the School of Code, our team, Status 418, made "Rootine", a habit-tracking app developed in React. The purpose of this app is to allow users to define daily habits that they would like to start (or keep) and be able to easily fill in and track their record of doing these habits over time. This app enables users to simply add a new habit along with a brief description and have this stored on our database.

They may then log in and open the page at a different time to change their habits' names or descriptions and update their progress for any day.

A user can expect to logout and login on a different device and still be able to view and edit their same habits and corresponding records for each date.

This repository contains the frontend code for the app, which has several features:

  • Landing page with an Auth0-integrated Log in/ Sign up flow
  • Form through which a new habit may be created, shown by clicking the "add +" button
  • Details panel displaying the details of the currently selected habit
    • Details of the currently selected habit may be edited through here as well
  • Calender row display with clickable arrows to see a different week
  • A row of clickable items for each habit, indicating the status of the user's habit for that day - incomplete, complete, skipped or missed

CSS Styling

Color Hex
Gradient Red #f05d4d #f05d4d
Gradient Yellow #f8a642 #f8a642
Primary Green #22553f #22553f
Primary Background #ffffff #ffffff
Secondary Background (Auth0 login) #e8e9e3 #e8e9e3
Primary Black (Text colour) #121714 #121714

Font Usage
Quando Headings
Lato Body

Landing & Log in/ sign up pages

Upon first opening the app, the user is greeted by the screen below - a simple image, the app's slogan, as well as the login and sign up buttons.

Landing page preview

Landing page screenshot


Clicking on either of these buttons redirects the user to an Auth0 authentication page, where they may sign up for a new account (with any email, even a fake one), or login with an existing account, respectively.

Sign up & Log in pages preview

Sign up page screenshot Clicking the sign up button takes the user to this page

Log in page screenshot Clicking the log in button takes the user to this (slightly different) page


Main page

Upon signing up, the user is presented with this page. There are no habits currently added (since they only just signed up), but there is a section on the left, prompting the user to add a new habit as well as an "add" button which the user may click on to access the form view of that section. It is through this form that new habits are defined and submitted.

Main page preview

Main page screenshot


Adding a habit


The functionality of adding habits is part of the HabitForm component.

The form view of the left section has a "Habit name" input, where the user can define the name of their new habit, as well as a "Habit description" input where a note may be made, giving more detail about that particular habit. Pressing the submit button will add this habit and its description to a database, and associate with the user's account.

Adding a new habit

Uploading a new habit


Tracking a habit


The functionality of tracking habits is part of the Calendar, CalendarBar & HabitRow components.

Upon submitting a habit and description, the user will see the new habit immediately appear in the main part of the screen, along with several clickable buttons. Each button, corresponding to the dates in the Calendar bar above, may be clicked to cycle between several colours:

  • White - Incomplete (initial state) - The user is yet to complete the habit that day
  • Green - Complete - The user successfully completed the habit that day
  • Yellow - Skipped - The user did not complete the habit that day for reasons out of their control (e.g. The park was closed)
  • Red - Missed - The user did not complete the habit that day

This provides a visualisation of the user's track record of sticking to their habits. The database will be update (or create a new entry) with the new status of that habit on that day as each button is clicked. There is also a streak feature to show how many days in a row the user has completed that habit.

Calendar bar

This shows 1 weeks' worth of dates, where each date box is synchronised with a column of "habit items" for that date. Future and previous weeks are able to be viewed by clicking on the arrows to the left and right of this row, with the habit items below updating for the status of each habit for the newly displayed days.

Tracking a habit

Tracking a habit


Modifying a habit


The functionality of modifying habits is part of the DetailsPanel & LeftSideHabitDetails components.

Users have the ability to edit the habit's name and description by clicking on an existing habit in the habit row. When clicked, this displays a details panel on the left side of the screen. Users can now click on the name and description in the details panel to make any changes. Once the user is satisfied with their changes, they can click on save to update the habit's details.

Alternatively, users can delete an existing habit by clicking on the delete button in the details panel for that habit.

This is also where the currently selected habit's streak is displayed.

Modifying and deleting an existing habit

Modifying and deleting an existing habit



Languages, Tools & Websites used:


miro figma trello git react chakra html5 css3 javascript auth0 postman cypress jest netlify


Authors

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.