This app utilizes Flask SQLAlchemy for its backend and React.js / Redux.js for its frontend.
- 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.
- 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
Column Name | Data Type | Details |
---|---|---|
id | integer | not null, primary key |
firstName | string | not null |
lastName | string | not null |
username | string | not null, indexed |
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 AWSUsers
have manyjournal entries
anddrawings
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 auser
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 fromreact-canvas-draw npm
component library- A
drawing
belongs to auser
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
andfriendId
Column Name | Data Type | Details |
---|---|---|
userId | integer | not null |
friendId | integer | not null |
PATH: "/journal/:id"
PATH: "/journal/all"
PATH: "/canvas/:id"
PATH: "/canvas/all"
-
auth_routes:
"/auth"
- GET
- Authenticate a user:
""
- Logout a user:
"/logout"
- Unauthorized route:
"/unauthorized"
- Authenticate a user:
- POST
- Login a user:
"/login"
- Signup a user:
"/signup"
- Login a user:
- GET
-
journal_routes:
"/journal"
- GET
- All journal entries:
"/entries"
- A journal entry:
"/<int:id>"
- All journal entries:
- POST
- Create journal entry:
"/new"
- Create journal entry:
- DELETE
- Remove journal entry:
"/<int:id>/delete"
- Remove journal entry:
- GET
-
canvas_routes:
"/canvas"
- GET
- All canvas drawings:
"/drawings"
- A canvas drawing:
"/<int:id>"
- All canvas drawings:
- POST
- Publish a drawing:
"/new"
- Publish a drawing:
- DELETE
- Remove a drawing:
"/<int:id>/delete"
- Remove a drawing:
- GET
-
message_routes:
"/inbox"
- GET
- All messages:
"/inbox"
- All messages:
- POST
- Send a message:
"/new"
- Send a message:
- GET
- Splash Page
- Login Modal
- Signup Modal
- Calendar/Dashboard Page
- Journal Modal
- Canvas Modal
- Comment Modal
- Drawer Component
- Inbox Component
- Footer Component
- React
- Redux
- Flask
- SQLAlchemy
- react-calendar npm
- react-canvas-draw npm