GithubHelp home page GithubHelp logo

ufosc / course-scheduler Goto Github PK

View Code? Open in Web Editor NEW
9.0 10.0 5.0 1001 KB

A dynamic course scheduler for planning out college semesters.

License: MIT License

Python 100.00%
college planer open-source python

course-scheduler's Introduction

Course Scheduler

A dynamic course scheduler for planning out college semesters.

Goals

Course planner that can suggest a sequence of courses based on constraints such as:

  1. Core / compulsory courses
  2. Individual interest
  3. Credit / ease of completion (i.e. easy grades vs. net learning value)
  4. & more (suggest stuff on our issues page!)

Contributing

See our contributing guidelines

Resources

We have a wiki that is currently being built, but check out the following resources:

Frontend (React / Typescript / CSS)

First time with react?

UI Design

Backend (Python)

TODO

Look at our projects or issues page!

course-scheduler's People

Contributors

envp avatar mirdaki avatar vaibhav-y avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

course-scheduler's Issues

Update package.json

Currently running a dev-server runs two separate and somewhat redundant commands (a constant compile and a server). The server should compile by it's self, but does not. Try fixing the configuration on the typescript branch so it isn't quite as wasteful. Be sure to test on different operating systems.

Design course sorting algorithm

Algorithm to sort classes into semesters based on prerequisites and difficulty. Must account for different course loads from semesters (summer is less than fall/spring).

Implement unit testing

Test database communication and data sanitation. Keep in mind things like no communication, bad data, etc

Basic React mock up

Put together a basic react system to allow for testing on the typescript branch. Should have a overall schedule with basic meta data, that displays a list of semesters with basic metadata, that displays a list of courses with basic meta data. Look at the corresponding typescript classes for source of data.

Get Major Requirements from One UF

Must log into the One UF degree audit to connect. This is not ideal. In addition, it uses whatever year you started as. However it provides a JSON with all the requirements, which is nice and more reliable than the static web page from the majors catalog.

Add Frontend Functions

Select major/minor, search courses, add courses, remove courses, move courses, save selection, load previous save

Add notes and relevant files on workflow, code style (.editorconfig for all languages)

I believe we can cover code style with standard PEP8 requirements. Here is a sample .editorconfig I plan to use for enforcing this (we can agree on something that works for all of us since we need to be able to read the code as well)

root = true

# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true

[*.py]
charset = utf-8
indent_style = tab
indent_size = 4

[Makefile]
indent_style = tab
indent_size = 4

Identify endpoints / Pages for data sources

#We need to identify API endpoints for various pieces of information to completely build the dependencies for all of the courses.

Status:

Purpose Endpoint Docs/Wiki Comments
Schedule https://one.uf.edu/apix/soc/schedule/?term= $TERM &category= $CATEGORY &lastrow=$LASTROW TODO There are more parameters check the wiki for info.
Description https://one.uf.edu/apix/soc/cdesc/ $COURSE_CODE TODO This is the only query parameter, however we may need to build a crude parser for the response containing pre-reqs/coreqs.
Dependencies TODO TODO Course description offers some rough unstructured info, but can we do better?
Evaluations TODO TODO Evaluate using the evaluations page for this info

Assignments:

Dependencies - @pikachuster

Updates

Schedule - Scrapy project
Dependencies / Descriptions - Currently being added to the scrapy based code.
Evaluations - Probably going to use scrapy / selenium here whichever comes through first reliably

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.