Coder Social home page Coder Social logo

sandboxnu / cooper Goto Github PK

View Code? Open in Web Editor NEW
2.0 4.0 0.0 87.5 MB

A tool for Northeastern students to both submit reviews of their co-ops and filter through reviews of co-ops left by other students.

Home Page: https://cooper-sandboxneu.vercel.app/

JavaScript 2.36% CSS 1.26% TypeScript 96.18% Shell 0.20%

cooper's Introduction

Cooper

Cooper is a tool for Northeastern students to both submit reviews of their co-ops and filter through reviews of co-ops left by other students.

Features

This is a T3 Stack project bootstrapped with create-t3-app.

Running Locally For Development

Before you start you will need the following:

  1. Clone the repo
git clone [email protected]:sandboxnu/cooper.git
cd cooper
  1. Install the necessary dependencies. The postinstall script also runs prisma generate.
pnpm install
  1. Configure the .env file by following the template in .env.example. See Setting up the environment.

  2. Run the docker container

docker compose up -d

Note: The docker-compose.yml file sets the POSTGRES_USER as "admin", POSTGRES_PASSWORD as "admin", and POSTGRES_DB as "cooper" by default.

  1. Sync the prisma schema with the database schema. Do not run this in a production environment.
pnpm prisma db push
  1. Run the application
pnpm dev

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

Setting up the environment

  1. Create a new file called .env or copy the .env.example and rename it to .env.
cp .env.example .env
  1. Complete the file to add your environment variables. These are the defaults for local development. Make sure that the docker container is running.
DATABASE_URL="postgresql://admin:admin@localhost:5432/cooper?schema=public"

NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET=

GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

To generate GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET, see Setting up OAuth 2.0. To generate a new NEXTAUTH_SECRET, run the following command in your terminal and add it to the .env file.

openssl rand -base64 32

cooper's People

Contributors

rishikeshnk avatar banushi-a avatar joshw2048 avatar

Stargazers

 avatar  avatar

Watchers

Sam Xifaras avatar Arun Jeevanantham avatar Krish Sharma avatar Ryan Drew avatar

cooper's Issues

As a Northeastern student, I want to easily recognize the Cooper logo because it improves my perception of the platform

EPIC: #7

While we wait for feedback on the color scheme for Cooper, let's do something fun - work on a logo! I'm thinking along the lines of:

  • A primary logo: Cooper with a tie + some sort of text of the "co-op evaluation resource" name
  • A secondary logo: Cooper with a tie + some sort of text of the "co-op evaluation resource" name
  • Submark: Solely visual logo
  • Favicon: The little icon that goes on the tab
  • Variations: The different jobs Cooper has

As a side note: maybe we can get merch with this stuff later ๐Ÿ‘€

Fix nested components in `review-form.tsx`

See the ProgressBar component defined within the ReviewForm. This can lead to unnecessary remounting since ProgressBar is a local function that is recreated on every render.

Define 3 options for color palette and typography

Epic: #7

I'd recommend by finishing a moodboard for what we want the overall look and feel of the project for be. This color palette / typography will not be final - once you have 3 suggestions on Sunday, we'll go over it as a team!

Add basic error handling to the `companyRouter`

When the user tries to access / update / delete a company that does not exist, a TRPC error is not produced (instead a Prisma error is). Essentially, before doing these operations, add a check to validate that the company is present in the database by using a findUnique. If not, throw a TRPCError. See other files in the router folder for reference.

Should be a very small ticket -- I somehow missed this during code review for the company router PR :P

As a Northeastern student, I want to see a landing page that explains what Cooper is when I visit the website so I trust the platform and understand what it does

EPIC: #8

Let's design a landing page that also has the log-in area. Take a look at other platforms (Glassdoor, Indeed, possibly Search / Graduate) look like when you visit them without being logged in.

Specifically, I think a successful page would have

  • blurbs about what the platform is and the problem its solving
  • a fun graphic (cooper at a computer?)
  • a call to action - for us, it's logging in, this should be the main part that users are drawn to interact with

As a co-op reviewer, I want a simple flow of actions so I actually finish my review

EPIC: #8

While we wait for feedback on the review form, let's start thinking about the actual process people will take to get to the review form. A concern is that people who get confused or frustrated leaving a review will just drop it, so let's draw out the user flow for successfully leaving a review.

Some questions to consider:

  • Where do people actually enter the review form (ex: a specific a company, from their user profile page, from the home screen when they open the platform)
  • How do we divide up the form into different screens, if at all?

As a co-op reviewer, I want to navigate through my review with ease so I don't get confused and not review a co-op

EPIC: #3

See the Figma wireframe here: https://www.figma.com/file/YPT3Wi0EVi9rxYmObF6cC4/UI-Designs?type=design&node-id=1%3A5&mode=design&t=CFd3vSod9XDjEN94-1
(note that the fields are not finalized and there's no colors - the basic idea is here though. Use v4 dev ready at the bottom!)

We've broken our form into multiple parts to make it look simpler and easier to fill out for users. Now, we need a way for them to easily navigate the form - we don't want to make them click the "back" button or scroll up a bunch to move around.

The header should appear as a question block first, then become a header type thing as the user scrolls down.

Misc tickets for rishi lol

  • vercel deployment
  • github workflows (plz protect main)
  • learn trpc
  • plz help with my weird database issue if you have time lol (really not important)

Make ERD diagram for database

EPIC: #4

While the designers work on getting some front end designs to develop, let's figure out what our database needs to look like - feel free to use something like Lucid Charts to put this together.

As a co-op reviewer, I want to submit comments about my co-op because it allows me to give an in-depth review of my co-op

EPIC: #3

See the Figma file here: https://www.figma.com/file/YPT3Wi0EVi9rxYmObF6cC4/UI-Designs?type=design&node-id=1%3A5&mode=design&t=CFd3vSod9XDjEN94-1
(note that this is a wireframe so fields are not finalized, and there's no color. Be sure to use dev ready v4!)

Let's get started with the main text entry section in review. I wager first you'd have to create a React component for review sections, and then add in more components for the text entry fields.

Also, for now, let's not worry too much about getting it connected to the back end.

Set up backend APIs for database

Let's discuss further, but I think we need the following API methods:

  • POST a review, company, role, and profile
  • GET a review, company, role, and profile
  • PUT a review, company, role, and profile
  • DELETE a review, company, role, and profile

I'm thinking these are all for a single item - do we need an aggregate (example, get all reviews from a user)

Wireframe a screen for submitting co-op reviews

EPIC: #8

To give the devs an idea of what they're going to have to build, let's make a simple wireframe of the portal to submit co-op reviews. This will likely consist of:

  • Dropdown of companies to select, or option to add new one
  • Star rating
  • Comments text area
  • Salary info area
  • Option to be anonymous vs show name?
  • And other fields you feel would be relevant

Discuss co-op review form

EPIC: #3

Rishi and Michelle - let's take a look at the wireframe and the form together for submitting a review. We'll first give Rishi feedback on what to change according to Michelle's design, then give feedback to Michelle for what to add that Rishi will add later.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.