Coder Social home page Coder Social logo

serenity-app's Introduction

Serenity App

This app utilizes Flask SQLAlchemy for its backend and React.js / Redux.js for its frontend.

Project Description

  • Serenity is an app for users looking for some positivity in their lives! The positive quotes rendered on the Splash page are from zenquotes.io. When a user logs in, there’ll be tranquil music playing to set the mood. When a user successfully signs up and logs in, they’ll be able to journal, draw, and leave nice comments for other users to increase positivity within their lives.


MVP

  • Hosted on Heroku, found here.
  • Audio begins on a loop once the user is logged in
  • User dashboards are displayed as a calendar with a list of tasks to complete every day
  • Logged in users can write journals, draw images with a virtual canvas, and leave nice comments for other users


Database Schema and Diagram:

Users

Column Name Data Type Details
id integer not null, primary key
firstName string not null
lastName string not null
username string not null, indexed
email string not null, indexed
avatar string no constraints
hashedPassword string not null
createdAt datetime not null
updatedAt datetime not null
  • unique index on username
  • unique index on email
  • avatar will be URL to picture using AWS
  • Users have many journal entries and drawings


Journal_Entries

Column Name Data Type Details
id integer not null, primary key
userId integer not null, foreign key
title string no constraints
body text no constraints
photo string no constraints
  • Unique index on userId
  • photo will be URL to picture using AWS
  • A journal entry belongs to a user


Drawings

Column Name Data Type Details
id integer not null, primary key
userId integer not null, foreign key
title string no constraints
image string not null
  • Unique index on userId
  • image will be an object containing gridpoints from react-canvas-draw npm component library
  • A drawing belongs to a user


Comments

Column Name Data Type Details
id integer not null, primary key
userId integer not null, foreign key
message text not null
friendId integer not null, foreign key
  • Unique index on userId and friendId


Friends (Join Table)

Column Name Data Type Details
userId integer not null
friendId integer not null


DB

WIREFRAMES

PATH: "/" Splash Page

PATH: "/signup" Signup Modal

PATH: "/login" Login Modal

PATH: "/dashboard" Dashboard Page

PATH: "/new/journal" New Journal Page

PATH: "/new/canvas" New Canvas Page

PATH: "/new/comment" New Comment Page

PATH: "/dashboard" New Comment Page

PATH: "/inbox" New Comment Page

PATH: "/journal/:id"

PATH: "/journal/all"

PATH: "/canvas/:id"

PATH: "/canvas/all"

API Routes

  • auth_routes: "/auth"

    • GET
      • Authenticate a user: ""
      • Logout a user: "/logout"
      • Unauthorized route: "/unauthorized"
    • POST
      • Login a user: "/login"
      • Signup a user: "/signup"
  • journal_routes: "/journal"

    • GET
      • All journal entries: "/entries"
      • A journal entry: "/<int:id>"
    • POST
      • Create journal entry: "/new"
    • DELETE
      • Remove journal entry: "/<int:id>/delete"
  • canvas_routes: "/canvas"

    • GET
      • All canvas drawings: "/drawings"
      • A canvas drawing: "/<int:id>"
    • POST
      • Publish a drawing: "/new"
    • DELETE
      • Remove a drawing: "/<int:id>/delete"
  • message_routes: "/inbox"

    • GET
      • All messages: "/inbox"
    • POST
      • Send a message: "/new"


Components List

  • Splash Page
  • Login Modal
  • Signup Modal
  • Calendar/Dashboard Page
  • Journal Modal
  • Canvas Modal
  • Comment Modal
  • Drawer Component
  • Inbox Component
  • Footer Component


Technologies

  • React
  • Redux
  • Flask
  • SQLAlchemy
  • react-calendar npm
  • react-canvas-draw npm

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.