BEAM
Abstract:
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.
Installation Instructions:
Deployed Link:
Local Installation:
- 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. - Change directories into
server
and runnpm install
thennodemon server.js
to start the server locally- NOTE – Running the server locally requires you to have a PostreSQL database created and configured locally with a table named
entries
. Once you have that set up, you can edit thedevelopment
object withinknexfile.js
to use your correctuser
andpassword
information. Once this has been updated, you can use the commandsnpx knex migrate:latest
to migrate the latest schema to your database, andnpx knex seed:run
to seed the table with data.
- NOTE – Running the server locally requires you to have a PostreSQL database created and configured locally with a table named
- Navigate to
http://localhost:3000
in your browser to use the application.
Preview of App:
Context:
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.
Learning Goals:
- Learn the fundamentals of backend engineering using Express, Knex, and PostgreSQL
- Use these tools to create a basic CRUD application that utilizes RESTful APIs.
Technologies used:
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
Contributors:
Wins + Challenges:
Wins:
- 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.
Challenges:
- 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.