Giter Site home page Giter Site logo

qu8n / pennplanner Goto Github PK

View Code? Open in Web Editor NEW
15.0 1.0 0.0 23.71 MB

馃帗 Drag-and-drop degree planner for the online MCIT, MSE-DS, and MSE-AI programs at University of Pennsylvania / Penn Engineering

Home Page: https://pennplanner.vercel.app/

License: MIT License

JavaScript 0.26% TypeScript 99.32% CSS 0.42%
courseplanner drag-and-drop mcit mseds upenn degreeplanner

pennplanner's Introduction

Warning

This repository has been archived. The PennPlanner no longer receives any updates starting May 1, 2024, as the University of Pennsylvnia plans to roll out DegreeWorks, a degree-planning tool, in the Fall of 2024. PennPlanner will remain accessible here, and anyone is welcome to fork and use this codebase for their needs.

PennPlanner logo

PennPlanner

A drag-and-drop course planner for students in the online Master of Computer and Information Technology (MCIT) and Master of Science in Engineering in Data Science (MSE-DS) at the University of Pennsylvania.
WebsiteReport IssuesAsk QuestionsSuggest Features


PennPlanner preview

Features

  • Drag and drop courses to plan your entire degree journey
  • View full details of each course, including ratings from MCIT Central
  • View, filter, sort, and search the entire Penn Engineering Online course catalog
  • Receive warnings for missing prerequisites or other requirements in your planner

Built with

  • Typescript
  • React
  • Tailwind CSS
  • Next.js
  • Vercel Deployment
  • Supabase Auth with Google OAuth
  • Supabase's PostgreSQL database
  • Highlight.io for observability

Getting started

Prerequisites

  • Node.js
  • NPM
  • Supabase account

Running locally

  1. Clone the repo
git clone
  1. Install NPM packages
npm install
  1. Create a .env.local file in the root directory and add the following environment variables:
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=

Note that for UI-only development, you might be able to opt out of using a database completely by commenting out all Supabase-related code.

  1. Remove observability code

    a. Delete instrumentation.ts

    b. Remove HighlightInit from _app.tsx

    c. Replace next.config.js with the default config:

/** @type {import('next').NextConfig} */
const nextConfig = {
  reactStrictMode: true,
}

module.exports = nextConfig
  1. Run the development server
npm run dev

Supabase's PostgreSQL database schema

users table:

Name Data Type Format
id uuid uuid
created_at timestamp with time zone timestamptz
username text text
full_name text text
first_year smallint int2
program text text
waived_courses ARRAY _text

semesters table:

Name Data Type Format
id bigint int8
created_at timestamp with time zone timestamptz
semester_index smallint int2
semester_course_ids ARRAY _text
user_id uuid uuid

Schema visualizer:

Schema visualizer

Contributing

Contributions are welcome! Feel free to open a pull request or submit an issue. If you need help getting started, please contact me on Slack here.

pennplanner's People

Contributors

qu8n avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

pennplanner's Issues

Server disconnect when clicking back button during sign-up

Describe the bug
Unable to connect to server after clicking the back button during the sign up process and trying to continue.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'sign up with google account'
  2. Click on any google account which successfully takes you to the next page.
  3. Instead of finishing creation of account, click the back button. Then try the process again (you can even click the same google account).
  4. See error "can't connect to server"

Expected behavior
Should have been able to continue go through the sign-up process as usual.

Screenshots
Above steps are sufficient to recreate.

Desktop (please complete the following information):

  • OS: MacOS Sonoma 14.1
  • Browser Safari
  • Version 17.1

Smartphone (please complete the following information):
n/a

Additional context
n/a

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.