SBUCourses is a web application designed to help Stony Brook University students plan their course schedules effectively. It provides an intuitive interface to browse courses, view detailed information (including past professors, syllabi, and community links).
- Course Browsing: Easily search and filter courses by department, number, title, or SBCs.
- Detailed Course Info: View credits, descriptions, prerequisites, past sections, professors (with RateMyProfessors integration), historical grade data, past syllabi (with user uploads), and relevant Reddit discussions.
- Framework: Next.js (v14+ with App Router)
- Language: TypeScript
- UI Library: React
- Styling: Tailwind CSS
- UI Components: shadcn/ui (built on Radix UI and Tailwind)
- Database ORM: Prisma
- Database: Supabase (PostgreSQL)
Follow these steps to set up the project locally:
-
Clone the repository:
git clone https://github.com/MadR7/SBUCourses.git cd SBUCourses -
Install dependencies:
npm install # or # yarn install # or # pnpm install
-
Set up environment variables:
- Create a
.envfile in the project root. - Add your database connection string:
DATABASE_URL="postgresql://USER:PASSWORD@HOST:PORT/DATABASE"
- Create a
-
Set up the database:
- Ensure you have a running PostgreSQL database instance matching the
DATABASE_URL. - Apply database migrations:
npx prisma migrate dev
- (Optional) Seed the database with initial data if a seed script exists:
npx prisma db seed
- Ensure you have a running PostgreSQL database instance matching the
-
Run the development server:
npm run dev # or # yarn dev # or # pnpm dev
-
Open http://localhost:3000 in your browser.
Contributions are welcome! If you'd like to help improve SBUCourses, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix-name - Make your changes. Ensure code follows existing style conventions and add tests where applicable.
- Commit your changes with descriptive messages.
- Push your branch to your forked repository.
- Open a Pull Request to the
mainbranch of the original repository.
Please provide a clear description of your changes in the Pull Request.
This project is open source.