Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chingu-voyages/v40-bears-team-29
V40 Bears Team 29
https://github.com/chingu-voyages/v40-bears-team-29
express heroku javascript jest nodejs postgres react supertest
Last synced: 2 days ago
JSON representation
V40 Bears Team 29
- Host: GitHub
- URL: https://github.com/chingu-voyages/v40-bears-team-29
- Owner: chingu-voyages
- Created: 2022-07-31T14:02:39.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-09-13T02:41:39.000Z (about 2 years ago)
- Last Synced: 2024-04-13T23:25:45.889Z (7 months ago)
- Topics: express, heroku, javascript, jest, nodejs, postgres, react, supertest
- Language: JavaScript
- Homepage: https://envoy-40.fly.dev/
- Size: 1.02 MB
- Stars: 3
- Watchers: 6
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CHINGU BEARS 29 - THE VOYAGE
This project is a collaborative effort to complete Chingu.io's voyage 40. It utilizes the Agile/SCRUM methodology, in our case, applicable originally to a team of 4.
## SPRINT ONE
1. Things accomplished:
- Meet the team (goals, expectations, availabity)
- Address meetings: schedule, structure, purpose
- Project was chosen: It's features were laid, the tech stack was set, Git workflow determined, MVP characteristics, and low fidelity wireframe sketched.
> The project is a travel message board application with Auth and CRUD abilities, built with the PERN stack (postgres, express, react, and node), deployed via Heroku, and managed via Github Projects.
2. Situations that required extra attention:
- Routing VS not Routing (client): An extensive discussion took place on whether or not the client should be routed. It triggered a very constructive discussion on Why one over the other, research, deploying a mock with both versions, reviewing, coming to a final decision based on facts gathered during the process instead of personal preference.
- File Upload: The app supports images to posted by the user. The original idea was implementing markdown to handle the process. This raised concerns. It triggered exploring file upload packages, implementing Multer (along with filereader) to a mock, deployed, reviewed, comparison between both approaches, and final decision, once again, based on facts rather than personal preferences.
- We lost a team member: Unfortunately, one of our team members fell ill and could not continue the voyage. This means the previous responsibilities taken by him are now split between the other teammates, and our time planning could easily be affected. Good thing we were ahead of time =)
> Extras of sprint one: Two pair sessions took place in order to share uncharted territory. On about DB, another about Node/Express
## SPRINT TWO - current
1. Things accomplished:
- Client all pages built and routed following the navigation flow determined in the low-fid wireframe
- Project structure was set during sprint one, but futher configuration and DB implementation/ testing took place
- Our backlog is designed and all Epics built, prioritized, broken down into user stories, and tasks
- A Sprint retrospective and planning session took place
- The AUTH Epic is the current work, for which several tasks are already complete
2. Situations that required extra attention:
- Decision over security concerns: JWT vs Cookies, which triggered research, examples of both approaches explored, evaluation of which would be more applicable for our purposes
- Deployment platform displaying payload in plain text unless SSL purchased (currently under discussion)
---
### requiments
node 18.2.0
postgresql >= 12### setup database
```
npx sequelize-cli db:create
npx sequelize-cli db:migrate
npx sequelize-cli db:seed:all
```### development
if you have a local postgres with different credentials from the default you can edit them using this .env file
```
DATABASE_URL="postgresql://postgres:postgres@localhost:5432"
SECRET_KEY="pls_set_a_real_value_here_in_production"
```the format is postgresql://USER:PASSWORD@HOST:PORT
is recommended you use an admin user in development as sequelize need the permission to create new databases
but if that is not possible you can pass a database name using this format postgresql://USER:PASSWORD@HOST:PORT/DATABASE```
npm install -g foreman
npx foreman start -f Procfile.dev
```also look into setting up standard js linters https://standardjs.com/#visual-studio-code
### deploy
make sure to set the env var REACT_APP_API_ENDPOINT to the appropriate value in production
```
git push heroku master
```### test
```
NODE_ENV="test" npx sequelize-cli db:create
NODE_ENV="test" npx sequelize-cli db:migratejest ./test
```