Sitelet https://github.com/Spawn9986/Instructor-Hub
Skip to content

Repository files navigation

Instructor Hub

project-image

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.

Project Screenshots:

Project Screen Shot 1 Project Screen Shot 2 Project Screen Shot 3 Project Screen Shot 4 Project Screen Shot 5 Project Screen Shot 6

Video Demo

Video

💻 Built with

Technologies used in the project:

  • PostgreSQL - Object-Relational Database
  • Express - Fast, unopinionated, minimalist web framework for Node.js
  • React - User interface library
  • Node - JavaScript runtime environment
  • Asana - Project Management tool
  • BCryptjs - Login/ Security (cryptographic hashing algorithm, recommended for password hashing)
  • Vite - Module bundler, transpiler and dev server
  • Vitest - Test runner
  • Prettier - Code formatter/checker
  • React-Testing-Library - React component test helper
  • MSW - Request mocking library for writing frontend tests
  • React-Auth-Kit - Authentication kit used for react project to grant cookies for remembering users
  • Supertest - HTTP request simulator for backend testing
  • Docker - Containerization framework for dev and deployment
  • Playwright - Scripting UI interactivity tests and the resulting changes to the site
  • Render - Deploying the website production build

Contributors

Full-Stack React Example

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.

Deployed setup

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

Development Setup

The app can be started with two steps:

  1. cp .env.example .env - Copy over required environment variables.
  2. npm install; npm install --prefix=api; npm install --prefix=client - Install all dependencies.
  3. docker-compose up - Run Project.

NOTE: After installing a new npm dependency, you have to run docker-compose up --build to install the new dependencies on the container.

npm Scripts

root

  • lint - Checks code for style issues.
  • test - Runs test:client and test:api.
  • ci - Runs lint and test.
  • 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.

Useful Docker Commands

  • 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.

Points of improvement for the next group to inherit this project

  • 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

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages