Capstone project for Galvanize Full Stack Software Development Bootcamp.
Worked within a team of six utilizing Agile development practices and GIT workflows to deliver a PERN containerized application. My part of the project consisted of leveraging React.js and CSS to design and implement captivating front-end functionality and styling as well as developing comprehensive unit and end-to-end tests.
VideoTechnologies used in the project:
PostgreSQL- Object-Relational DatabaseExpress- Fast, unopinionated, minimalist web framework for Node.jsReact- User interface libraryNode- JavaScript runtime environmentAsana- Project Management toolBCryptjs- Login/ Security (cryptographic hashing algorithm, recommended for password hashing)Vite- Module bundler, transpiler and dev serverVitest- Test runnerPrettier- Code formatter/checkerReact-Testing-Library- React component test helperMSW- Request mocking library for writing frontend testsReact-Auth-Kit- Authentication kit used for react project to grant cookies for remembering usersSupertest- HTTP request simulator for backend testingDocker- Containerization framework for dev and deploymentPlaywright- Scripting UI interactivity tests and the resulting changes to the siteRender- Deploying the website production build
This repo contains an example of a full-stack application with an express backend, a React frontend, and a postgres database. It's designed to be a starting point for a blue ocean project, or a reference for those wanting to get testing, CI, or docker working in their respective projects.
As of 5/26/2023 the website is deployed on https://instructor-hubmcsp19.onrender.com/ . This will stop being the case in about 2 months, as render's free services will expire
The app can be started with two steps:
cp .env.example .env- Copy over required environment variables.npm install; npm install --prefix=api; npm install --prefix=client- Install all dependencies.docker-compose up- Run Project.
NOTE: After installing a new npm dependency, you have to run
docker-compose up --buildto install the new dependencies on the container.
root
lint- Checks code for style issues.test- Runstest:clientandtest:api.ci- Runslintandtest.test:client- Runs frontend tests.test:api- Runs backend tests.
/client
dev- Hosts your assets (executed by docker-compose).build- Builds your assets for production.test- Runs tests.
/server
dev- Runs the server in watch mode (executed by docker-compose).start- Starts the production server.test- Runs tests.
docker exec <container_name_or_id> <command>- Runs command in the context of a container.docker inspect <container_name_or_id>- Displays info (including IP address) of a container running in docker.
- playwright tests that involve adding new information thru interacting with the website should be made to have this info deleted upon deleting the volume
- selecting individual assessments for the individual students, the list of members is based on their unique student_id, not their names. This should be rectified to displaying their names instead of number_ids
- separate testing environment including a different ports for server, react site, database, so as to not influence the main project
- Assesments button needs to figure out routes that allow for selection of a student and a specfiic assessment, after assesment and student selected, the next button should take you to modal for grading





