GithubHelp home page GithubHelp logo

zilunpeng / course_scheduler Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 3.58 MB

A web application that allows users to explore and schedule courses

License: MIT License

TypeScript 83.42% JavaScript 5.54% CSS 0.13% HTML 10.91%

course_scheduler's Introduction

Course Scheduler

This is a class project for practicing software engineering. This application consists of several parts:

  1. Parse courses and rooms data from zipped text files into json objects. Throw errors if data is not valid.
  2. Handle queries on courses and rooms and present data that satisfies the query. A sample query could be: "find courses in department X that has more than Y students". Throw erros if an invalid query is given.
  3. Generate a class schedule that avoids as many contraints as possible. Some constraints are: a course must always take place at the same building, or a course could only happen on Tuesday/Thursday or Monday/Wednesday/Friday, etc.

Sample results

a sample query on rooms and searched results.

room query

room query results

a sample scheduling query and results

schedule query

schedule

The above figure shows parts of the schedule.

Some highlights

  1. Practiced writing unit tests to cover most codes.

code coverage

  1. Used a flow network to solve the scheduling problem.

  2. Used promises instead of call backs to handle asynchronous operations (e.g. sending/receiving requests, unzipping files, etc).

Project commands:

To build the project (note that Node (v6+) is required to run these commands):

  1. yarn run clean

  2. yarn run configure

  3. yarn run build

To start the server:

  1. yarn run start

  2. open http://localhost:4321/

Acknowledgement:

Thanks to Judy Chen for collaborating with me on this project.

course_scheduler's People

Contributors

zilunpeng avatar

Watchers

 avatar  avatar

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.