Getting Started
Getting started on SearchNEU
Introduction
SearchNEU is a longstanding project; one of the oldest ones in Sandbox. As a developer, if you're reading this, I'm sure you have some semblance of an idea of what SearchNEU is about: helping students find classes a lot more easily than banner does. Hopefully, this documentation will serve as your guide for navigating Search, making a it a little bit easier to keep this awesome project in tip-top shape!
Getting Started
Tech Installation
- Install the pnpm package manager. This should be installed
directly and not installed through
npm. Runpnpm -vto ensure it was successfully installed (should return version information). - Install Docker following the directions on the site.
Correct installation can be checked by running
docker -vwhich should return version information. - Install Nodejs. Installation can vary by system, preferrences,
and previous installations. The easiest way is to run
pnpm env use --global 24which uses pnpm to install Node. Note that pnpm may error and requirepnpm setupto be run first. Node installation can be checked withnode -vwhich should return a version starting withv24(the current major Nodejs version that Search uses) - Install Turborepo globally with
pnpm install turbo --global. - Clone the SearchNEU github repository
with
git clone git@github.com:sandboxnu/searchneu.git - Install all project dependencies! From inside the project directory, run
pnpm install. This should install a bunch of packages and create somenode_moduledirectories. - Clone cache files from SearchNEU Cache Repository. These should be somewhere on your machine, but not in the main SearchNEU directory.
Running the Project
- Start up the database with
docker compose up -d. - After the first time you spin up the database, run
turbo db:migrateto clear the database. More database information can be found here - Run
turbo db:pushto upload the drizzle schema - Seed the database with
turbo scrape:up -- --cachePath="<PATH_TO_CATALOG_CACHES>" --terms=all - Run
turbo devto spin up SearchNEU and all packages - Visit http://localhost:3000 to view the site!
Specific Topics
Below you can dig into more intricate, specific parts of search. Go crazy! (We did)
Frontend Stuff
Learn more about the killer SearchNEU design
Database/Scraper Interworkings
How the scraper interacts with banner and our database
Searching Shenanigans
What makes Search able to search
Github and Git Etiquette
So we never have another quarter million line PR
Hosting Through Vercel
Actually hosting SearchNEU for our lovely cohort