Skip to content

Fullstack app where the user can filter trending tech-stacks based on job openings. Built in Next.js, TailwindCSS, tRPC, Postgres and Prisma.

Notifications You must be signed in to change notification settings

stack-ranger/dream-job

Repository files navigation

Stack Ranger

Tell us with which stack want to work with and we will find the jobs for you. Or if you still know exactly which skills you should learn next, tell us about the job you are interested in and we will find the most relevant stack for you.

Link to the app

https://stack-ranger.herokuapp.com/

Tech Stack

The application is built with the following stack:

  • Next.js
  • Prisma
  • Postgres
  • tRPC
  • TailwindCSS

Setup

Install dependencies

yarn install

Setup postgres database

docker run postgres -p 5432:5432

Create a .env.local file and add the following variables:

DATABASE_URL="postgresql://USER:PASSWORD@localhost:5432/DATABASE?schema=public"
API_KEY="YOUR_API_KEY" #https://findwork.dev/api/jobs/

# Arbitrary string for the authorization header
AUTHORIZATION_HEADER="YOUR_AUTHORIZATION_HEADER" 

# Required for next-auth
GOOGLE_CLIENT_SECRET="YOUR_GOOGLE_CLIENT_SECRET"
GOOGLE_CLIENT_ID="YOUR_GOOGLE_CLIENT_ID"

Sync with the database

yarn prisma migrate dev --name init # sync with new db
yarn prisma db pull # sync with existing db
yarn prisma generate # create prisma client based on schema

Utils

A convenient way to interact with the database is to use the prisma studio

npx prisma studio

Run

yarn dev # start dev server on localhost:3000
yarn build # build for production
yarn start # start production server
yarn lint # run eslint

Trigger the microservice

Use the authorization header to trigger the microservice. (Note we used cron job via Gihub Actions to trigger )

curl --request GET \
          --url 'localhost:3000/api/microservice' \
        --header 'Authorization: <AUTHORIZATION_HEADER>'

Grading

Criteria Points
Regex 3
CSS Tailwind 5
Darkmode 5
Chart.js 5
Next.js (SSR) 20
UI-Components (styled components) 5
Typescript 10
tRPC 6
Authorization (Own auth and Google) 10
Host own DB (Postgres) 15
Deploy server in Docker container 10
Deploy additional Docker container (pgadmin) 10
Additional mirco-service (fetch jobs from API) 10

Additional potential points

  • Prisma (Object relational mapping) for full type safety and independence from db changes
  • Github Actions (build, deployment and cronjob)
  • Endless scroll (no library)
  • Auto suggestions for skill search on job search (no library)
  • State management using Zustand

Made with ❤️ at KTH

About

Fullstack app where the user can filter trending tech-stacks based on job openings. Built in Next.js, TailwindCSS, tRPC, Postgres and Prisma.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published