Skip to content

ctlaultdel/smart-dream-journal-backend

Repository files navigation

Smart Dream Journal 😴

Ada AC2 Capstone Project https://smart-dream-journal-frontend-ba3951debbfd.herokuapp.com/login

Test Account Credentials

username: alpinista24

password: alpinista24

Project Description 🚀

The problem I want to address with my capstone project is providing an easy, efficient tool that allows people to learn about their health by understanding their dream patterns. Hormonal changes can affect when you dream, what you dream about, and sometimes dreaming can even negatively impact your quality of life. For example, night terrors, sleep paralysis, nightmares. For others, dreams can provide inspiration for new ideas and motivation to achieve certain goals in life. I want to create a platform that is convenient for both types of users and will do all the work in identifying patterns, extracting and presenting useful information, and creating a good experience through an asthetically-pleasing interface that makes tracking dreams fun.

Project Type 👾

Web Application

Tech Stack 👩‍💻

  • React: web platform
  • Flask: Backend
  • PostgreSQL: Database
  • Heroku: Deployment
  • Flask-jwt-extended: Package for JSON web token generation and protection of API endpoints
  • AuthContext: React library used for sharing authentification status across react components
  • Recharts: Library built on React components for displaying charts and graphs

MVP Feature Set 🏁

  1. Home Dashboard
    • Provides navigation to home profile page, journal entries, dream analyses
  2. Profile Registration/Login
    • Allows users to create an account, login, and logout
  3. Journal Entries
    • Page where users can log a dream journal entry
    • Title
    • Description (text description in paragraph form, visible while writing for long/short entries)
    • Date (allow user to click on calendar date if time permits, otherwise enter date)
    • Keywords (allow users to input their own keywords for things that stood out to them - limit to 1 word in keyword)
    • Mood selector (provide choices for user to select - e.g. scary, weird, adventurous, sad - use of fun emojis)
  4. Dream Analyses
    • Bar plot showing the frequency of dreams by mood
    • users can visualize entries logged by emojis depicting a "dream mood" e.g. 🦀 🧗 🐛 ⛰️

Future Enhancements 🔥

  1. Analyses Figures
    • Feelings Wheel depicting dream moods frequency (better for handling wider array of dream mood emojis)
    • Word Cloud depicting dream entry keywords by frequency with links to dream entries containing those keyword tags
    • Interactive graphs would be nice where they can click on a point and see some stats about the dream (bokeh)
  2. Calendar
    • Calendar page with marks on dates with existing dream journal entries
  3. Dreams 101
    • articles/resources for users that want to read the science or learn more about dreams and effects on health, etc.
    • dream dictionary where you can click on a dream keyword and see the meaning in a dream dictionary
  4. Mobile App Platform
    • mobile app in addition to web browser app kotlin