https://dream-state-app.herokuapp.com/
Uncover the true meaning of your subconscious dreams and discover what your conscious mind has learned to repress. Dreamstate is an interactive application enabling users to understand the meaning of their dreams and view an overall sentiment based on keyword analysis.
The final website is responsive to multiple screen sizes:
- Build a full-stack application
- Have an interactive front-end
- Be a complete product (CRUD functionality)
- Use a database (MongoDB)
- Implement thoughtful user stories
- Have a visually impressive design
- Be deployed online and accessible to the public.
- Node/Express
- Key modules:
- Cheerio - Dream Analysis data scraping
- Passport / Bcrypt - Authentication and password hashing
- Key APIs:
- AWS - detectKeyPhrases for keyword analysis
- AWS - detectSentiment for sentiment analysis
- React
- Key modules:
- Recharts
- Axios
- React-router-dom
- CSS Framework: Material UI
- MongoDB with Mongoose
The target user for this app is the ever curious dreamer who is interested in uncovering the true meaning of their dreams and discovering trends in their dreams over time. The users are not those trying to explore a supernatural communication, they just regular people simply trying to understand how their everyday life is impacting their dreamstate.
- As a user, I want to...
- be able to quickly concisely analyze key points I remember from my dream
- be able to understand the overall sentiment based on the content I have entered
- be able to read more thorough analysis of
- be able to track the sentiment of my dreams overtime
- be able to see if there is an overall trend in the keywords or phrases appearing in my dreams
- be able to keep an up to date journal of all the dreams I recall to revisit and edit over time
- Users can add/edit/delete dreams
- Raw Data
- User entries
- Add functionality for tooltips
- More robust options for keyword analysis - this may include scraping other sites to retrieve keyword content or rescraping the initial site for references to other keywords
- Scrape most common dreams and meanings for readers to references
-
Routes
-
Auth
POST /auth/login
- signs in existing userPOST /auth/signup
- renders sign up componentPOST /me/from/token
- create user token and sets expiration of token
-
Dream
POST /
- runs analysis on user's input (keyword analys, sentiment analysis, and data scraping)DELETE /dream/:id
- removes dream of specified user from dream logPUT /dream/edit/:id
- identifies and updates selected dream of the user commiting changes to the database
-
Profile
GET /profile
- queries dream database to select all dream data associated to the logged in user to render trends over time
-
User
GET /log
- queries dream database to return all all dream data assoiated to logged in user to render all dream
-
-
Models
- User -
- Purpose: store signed-up user information
- Fields: name, email, password
- Dream - user_id, date, content,
- Purpose: store all dream data for signed-up users
- Fields: user_id, date, content, sentiment, score_positive, score_negative, score_neutral, score_mixed, keyword1, keyword2, keyword3, keyword4, keyword5
- User -
If you'd like to set this project up on your own local server:
- Fork and clone this repository
- Run
npm install
to install dependencies in both client and main project folder- Run
npm run build
in client folder - Use
nodemon
to run the application in the main project folder
- Run
- Setup your database (this app utilizes one MongoDB model)
- Create .env file, which will need to include:
JWT_SECRET
(you determine this for user token creation)
- Review database setup and check mongoDB to confirm data *If needed, use MongoDB Compass to view data entries
- Dream Analysis
- Sentiment Analysis and Keyword Analysis - https://aws.amazon.com/comprehend/
- Individual Keyword Descriptions and Meanings - http://www.dreambible.com/search.php
- Stock Photo