Open Thought is an online journal where you can write freely about your biggest hopes and dreams, your favorite memories, or whatever is on your mind.
- React/React Router
- JSX
- CSS
- JavaScript
- Bootstrap
- Axios
- GitHub
- Atom
For my capstone project, I created an application that allows users to write and reflect in an online journal. While my experience in this bootcamp has been a whirlwind, I have lost touch with my daily ritual: journaling each day upon waking up. This project was created with the intention and hope to reinvigorate this practice for myself and others. For a future version, I aspire to add a social aspect, where users can interact with one another through their posts.
I began by creating very detailed user stories (through a new app, Sketch), wireframes, and ERDs. This use of time for planning was extremely beneficial, as I had a solid understanding of the direction that I wanted to go in when building both the front and back end. Although styling and CSS are not my strength, I am excited to expand and strenthen these skills by giving my application a clean and minimalistic journal-feeling environment.
Next, I began building the backend of my project using Express. With users and journal entries as my resources, I tested CRUD actions on the entries. For version one of Open Thought, I built the backend to require a token and authentication, so that a user can only create, view, update, and delete their own journal entries.
Once my backend was up and running, I moved onto my client facing application. I used React and its component based framework to build out a structure for my program. I created individual components for each CRUD action on journal entries and tested each with curlscripts. From here, I started to add content to the page with a combination of newly learned JSX, React, and CSS. I added web page functionality for a user to be able to create, update, view (one and all entries), and delete an entry.
- As an unregistered user, I would like to sign up with email and password.
- As a registered user, I would like to sign in with email and password.
- As a signed in user, I would like to change password.
- As a signed in user, I would like to sign out.
- As a signed in user, I would like to create a journal entry.
- As a signed in user, I would like to edit a journal entry.
- As a signed in user, I would like to delete a journal entry.
- As a signed in user, I would like to see all my journal entries.
- Clone/download this repository
- Install dependencies
- Use npm run server to run on local server
I hope to make this application more of a social experience, where users can interact with one another through their posts. I intend to make this happen by opening up access and permission to journal entries in the backend. On the client side, I would love to include an ability to add tags to posts, making searchability by keyword possible.

