Beam is a self-care application intended to help the user work through any kind of feeling or emotion they might be experiencing. The user will be asked to choose a feeling and reflect on it, add anything about their experience that might help them avoid or recreate the feeling in the future (depending on the feeling). After their reflection, they will see an offering of a few activities that might help. Their entries will be available to them in the Feelings Archive for future reflection and can be edited whenever they'd like.
- Fork this repository.
- Create a local repository.
- Follow the Github on-screen commands to connect your local repository to your newly forked repository.
- Change directories into
client
and runnpm install
, thennpm start
to start the application locally. - Navigate to
https://localhost:3000
in your browser to use the application.
This application was completed as part of the Turing School of Software and Design Mod 3 curriculum.
Between Wednesday April 5th and Monday April 17th of 2023, we spent around 30 hours studying the new technologies, planning out our project, and coding both individually and collaboratively to complete this application.
- Learn the fundamentals of backend engineering using Express, Knex, and PostgreSQL
- Use these tools to create a basic CRUD application that utilizes RESTful APIs.
To create our local database, we used:
- Knex
- Express
- PostgresQL
- Node.js
- CORS
- Postman
- PGadmin
To design and test our front end, we used:
- React (JavaScript, CSS, HTML)
- React Router
- Cypress
- ESLint
- Luxon Date Wrapper
- Our major win was successfully learning and implementing a back-end utilizing Express.js & PostgreSQL/Knex. We deepened our understanding of the relationship between servers and databases and also learned about the tools one can use to create database schemas. We created routes for GET, POST, and PUT network requests. This was the first time any of our team used these technologies.
- We auspiciously created React functional components and implemented various hooks for state management. Prior to this we had all utilized class based components to use and manage state.
- We successfully navigated merge conflicts without issue, which arose due to working asynchronously.
- While creating a back-end site was a win, it was also a challenge. Being a new concept, we spent a lot of time figuring out how all the pieces fit together and how to implement and navigate each team member creating a local database.
- We had challenges with understanding, creating, and implementing migrations. This became especially difficult when we needed to update the previously created table with a new migration.
- It was difficult to simultaneously intercept multiple different network requests for testing the application with Cypress.