Skip to content

Latest commit

 

History

History
61 lines (43 loc) · 2.26 KB

README.md

File metadata and controls

61 lines (43 loc) · 2.26 KB

ASU Course Explorer 🔱

High-Performance API for ASU Course Catalog written in Go.

About The Project

Arizona State University doesn't have an openly available API to access their course catalog. As it stands, students must navigate through the university's website to find this information, which is often buried in several layers of webpages. ASU Course Explorer aims to solve the missing piece to the problem.

Built this as a fun side project and a heavily-modified production version written in TypeScript is what's running the backend for Courseer! Feel free to implement this project into your personal open-source projects!

Built With

  • Go - Programming Language
  • Rod - Driver for DevTools Protocol
  • Gin - Web Framework
  • Redis - In-Memory Data Structure Store (for caching)

Get Started

Clone the repository and make sure Go is installed before running the following commands.

cd asu-course-explorer/

# Install dependencies
go mod download

# Run the server
go run .

API Endpoints (so far)

Classes

/api/classes - Fetches a list of all classes.

/api/classes/{classId}: Fetches information about a specific class.

/api/classes/course/{classId}: Fetches all classes associated with a specific course.

Roadmap

See the open issues

  • Add specific class endpoint
  • Add semesters endpoint
  • Add professors endpoint
  • Add course descriptions endpoint
  • Add Redis caching
  • Add Docker support

Contributing

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  • Fork the Project
  • Create your Feature Branch (git checkout -b feature/AmazingFeature)
  • Commit your Changes (git commit -m 'Add some AmazingFeature')
  • Push to the Branch (git push origin feature/AmazingFeature)
  • Open a Pull Request

License

Distributed under the GPL-3.0. See LICENSE.txt for more information.