PathWeave is a modern, full-stack McMaster course planner designed to make academic planning seamless and intelligent. it makes use of Mapbox to visually see the routes a student would take during a day, as well as RateMyProfessor data to determine if classes are worth going to.
- Framework: SvelteKit
- Language: TypeScript
- Styling: Tailwind CSS + ShadcnSvelte
- Tooling: Vite, ESLint, Prettier, Bun
- Language: Go
- Database: PostgreSQL with
pgvectorextension - Database Tools:
sqlcfor query generation,goosefor migrations
- Language: Python
- Tools: Playwright & BeautifulSoup
- Environment:
uv
Make sure you have the following installed on your machine:
- Bun (for frontend dependencies)
- Go (1.20+)
- Python 3.10+ and uv
- PostgreSQL with the
[pgvector](https://github.com/pgvector/pgvector)extension enabled
Ensure PostgreSQL is running and create a database for PathWeave. Apply the database migrations to set up the schemas:
cd server
# Ensure your DATABASE_URL environment variable is set
goose -dir db/migrations postgres "$DATABASE_URL" upNavigate to the server directory and start the Go backend:
cd server
go mod download
go run cmd/api/main.goNavigate to the client directory, install dependencies, and run the development server:
cd client
bun install
bun run dev(Note: Ensure your .env is configured with portal credentials and database access for the scrapers).