Skip to content

Latest commit

 

History

History
132 lines (90 loc) · 6.34 KB

File metadata and controls

132 lines (90 loc) · 6.34 KB

🐊 Swamp Scheduler 📆

An open-source web app developed to help students at the University of Florida plan for classes next semester. Click Here To View Swamp Scheduler!

Made with ❤️ by UF's Open Source Club (@ufosc).

Table of Contents

Project Description

**What is Swamp Scheduler? Swamp Scheduler is a web application designed for University of Florida students to plan their academic schedules. Through Swamp Scheduler, students can view and organize their semester course structure, allowing them to adjust their schedules according to their preferences. Swamp Scheduler also generates potential schedules for students to choose from, allowing course shopping to be a much smoother and easier process. The application provides real-time course data, including information on course credits, professors, section numbers, and class times, all of which are essential for creating an optimal schedule. Additionally, users can log into their accounts to save their schedules.

Features

  • Course Explorer: Explore courses offered at the University of Florida
    • Find courses by course code, title, or instructor
  • Course Selections: Make multiple courses selections with backup options.
    • Pick which classes you want (and remove which sections you don't)
  • Schedule Generator: View and compare all the possible schedules and pick the one that fits your needs and wants.
    • View color-coded schedules that show what your day-to-day struggle workload will be
  • Generate a Set Range of Schedules: Allowing users to generate x possible schedules.
    • View all your schedules an choose the one you want!
  • Apply Gaps between sections: Customize your generations through gaps.
    • Apply gaps to your generated schedules for further customization and ease.

Installation

Prerequisites

Make sure to have npm installed.

Setup

Clone the Repo

Clone the repository to your local machine:

git clone <repository-url>

Install the Dependencies

Enter the web-app directory (/app) and install the dependencies (React, Tailwind CSS, etc.):

cd app
npm install

Usage:

  • In the web-app directory:
    • Development: Run npm run dev to run the development server locally (with hot reloading).
    • Production: Run npm run build to build the app to /app/dist.

Contribution

Before you can make good contributions, you need to know a little bit about what we're using and how the web-app works. After that, you should be ready to get your hands dirty!

What We're Using (our Tech Stack)

This project is built using a variety of exciting technologies, including:

  • TypeScript: The JavaScript programming language with a typing system (for Course objects, etc.)
  • React: A JavaScript library for building dynamic user interfaces.
  • Tailwind CSS: A utility-first CSS framework.
  • Vite: Simply used as a build tool and development server.

Code Style and Recommendations

If you are unfamiliar with the tech stack, be sure to check out these free resources to learn!

If you need help, don't be afraid to ask in the OSC discord

    • Indentation and Spacing: Use consistent indentation (e.g., 2 or 4 spaces) to enhance readability. Include spaces around operators and after commas to improve clarity.
  • Naming Conventions: Follow a consistent naming convention (e.g., camelCase for variables and functions, PascalCase for classes) across your codebase.
  • Use Descriptive Names: Choose variable, function, and class names that clearly describe their purpose or behavior without needing additional comments.
  • Limit Line Length: Aim to keep line length under 80-100 characters for better readability across various editors and tools.
  • Function Size: Keep functions short and focused. Each function should do one thing and do it well. A good rule of thumb is that if you can’t summarize what a function does in a simple sentence, it might be doing too much.
  • Comments and Documentation: Use comments to explain "why" instead of "what." Use documentation blocks for functions and modules to describe their purpose, parameters, and return values.
  • Consistent Syntax Style: Be consistent with your syntax style, such as the use of arrow functions vs. traditional functions in JavaScript/TypeScript, or the placement of braces.

How It All Works

Be sure to read (yes, read) some of our code. Everything works better when we all understand what we're talking about.

SwampScheduler's documentation is a work-in-progress.

Give Me Something To Do!

There are lots of things that can be done, and a lot of them are on our back-burner.

Take a look at what issues (enhancements, bug fixes, and ideas) are open. If you find one you like, assign yourself and be sure to talk to other people about what you're doing (it helps us, the maintainers best allocate our resources).

Maintainers

We're your Technical Leads, Product Managers, and Mentors all-in-one:

License

GNU Affero General Public License v3.0