Skip to content

EvanBurriola/Project3-Prod

Repository files navigation

CSCE 315 - Project 3 Codebase

This readme gives an overview of our project dependencies and explains how to run the project. It also provides some great external resources to use.

Table of Contents

  1. Dependencies
  2. Building the Project
    1. Locally
    2. Production
  3. Project Requirements
  4. Workflow Guides
  5. External Resources
    1. Backend
      1. Node
      2. NextJS
      3. Prisma
      4. Redux
      5. Passport
    2. Frontend
      1. React
      2. Bootstrap
    3. Testing
      1. Jest
      2. ESLint
    4. Deployment
      1. Vercel

Dependencies

  • NextJS for routing, api, and react integration
  • React for UI implementation
  • React Bootstrap to use bootstrap within react
  • Redux Toolkit for state management within react
  • Prisma for querying from PostgreSQL database
  • Passport for authentication (local and google oauth)
  • Jest for testing
  • ESLint for linting

Possible dependencies for use in the future

  • SWR (stale while revalidate) for managing view updates efficiently
  • dotenv to load and use environment variables
  • bcrypt to compute and compare password hashes

Building the Project

Testing Locally

Make sure you've created the prisma client by running the following command. This ensures that you can connect and query from the database. YOU ONLY NEED TO DO THIS ONCE:

npx prisma generate

Run the development server using the following command

npm run dev

Open http://localhost:3000 with your browser to see the result.

You can edit pages by modifying them in the pages folder. The page auto-updates as you edit the file.

The pages/api directory is mapped to /api/*. Files in this directory are treated as API routes instead of React pages.

Pushing to production

Pusing to production is done through Vercel. Currently, all production pushes are done through Evan and the latest product should always be hosted at https://project3-prod.vercel.app/.

Project Requirements

todo

Workflow Guides

Pull Requests

Before creating a pull request:

  1. rebase your branch (resolve any conflicts locally)
  2. make sure all tests are passing
  3. commit any changes to the branch. After all of your changes have been committed, you can open a pull request on the Project GitHub page.

Please follow the Pull Request template and tag your pull request with the correct tags. Also make sure to add reviewers to your pull request. A breakdown of all of the tags can found here

Commits

When you make commits make sure you aren't committing unecessary files. If you make new files but don't want to commit them (like test files) you can add them to the gitignore list. If you do this, make sure you commit the gitignore file changes before you commit changes to any other file.

If you're assigned an issue and you are making a commit that resolves that issue, put the issue number in the commit message. Here is an example:

git commit -m "UPDATE: resolved #13"

This references issue #13 and will automatically close the issue once the branch is merged with main. It also creates a link in the issue itself that links to your commit. ONLY DO THIS ONCE YOU HAVE COMPLETELY RESOLVED AN ISSUE

External Resources

Backend Frameworks

NodeJS:

NextJS:

Prisma

Redux (State Management)

PassportJS

Frontend Frameworks

ReactJS

Bootstrap and React Bootstrap

Testing and Linting

Jest

  • todo

ESLint

  • todo

Deployment

Vercel