Giter Site home page Giter Site logo

teaweb's Introduction

Teaweb

Screenshot of a Teaweb schedule

Work-in-progress replacement for Benjamin Bean's Beanweb, a scheduling program for NMT students.

Goals:

  • More modern-looking, clean web design, with dark & light theme and minimalism.
  • Don't make the mistake of trying to stick classes in a table, with a bazillion columns for the attributes of classes; vertical space exists for a reason.
  • Mobile layout support (eventually there might someday be an Ionic version of this for phones).
  • Statically type everything.
  • Don't have user accounts; instead have users create a schedule, and have a button that generates a permalink to that schedule.
  • Have pages for individual instructors that show the list of classes they're doing (with a schedule rendered for them), and if possible, their office hours and links to their personal web pages.
  • Try to translate class names into English: instead of saying "Intro to Envir. Science & Engr" (the official name of the course in Banweb), write "Introduction to Environmental Science & Engineering". Instead of saying "No Given Name Ramyaa" use her actual name, "Ramyaa".

Running

This is a SvelteKit project. After cloning use:

npm i  # install dependencies, first run only
npm run scrape # downloads schedules from Banweb
npm run dev -- --open

teaweb's People

Contributors

alexbethel avatar

Watchers

 avatar

teaweb's Issues

Scraper semantics are dumb

The scraper downloads the class list and dumps it in src/routes/classes.json.gz/classtimes.json; modifying the source code of the website is a terrible way of doing this, because it makes it much more difficult to deploy the program with a scraper running on a timer.

Saving schedules

Need the ability to save schedules; currently it opens a popup that says it's unimplemented.

Calendar can't deal with overlapping classes

Selecting multiple classes that conflict causes them to be drawn on top of each other in the weekly calendar view, making it impossible to tell details about the class drawn underneath the other. They should preferably be drawn next to each other.

Filtering is too simple

The "Filter classes" box filters by section title, but it should also allow you to filter by subject abbreviations and class numbers: for example, typing "ENGL" or "English" into the filter box gives no results, but should give every class under the ENGL subject; and typing "1110" gives no results but should give ENGL 1110, Composition I.

Instructor pages are unimplemented

In the course catalog page, instructors' names are all links, but the links all go to 404's. Eventually they should be links to the instructors' schedules of classes.

Calendar does not work in Brave browser

The calendar seems to render incorrectly in the Brave browser, and shows all classes flush at the top of the page. Some other browsers may be affected, needs more testing

Filtering sometimes shows incorrect titles

Under some circumstances, filtering causes classes to be displayed wrong. I haven't nailed down why this happens, but to reproduce:

  • Select "Spring 2024" on the homepage and create a schedule
  • Open the "Computer Science & Engineering" drawer
  • Type the word "database" into the filter box

Teaweb will display a class "CSE 3073: Introduction Computer Science and Information Technology", which is the correct course number but incorrect title.

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.