I AM NOT AFFILIATED WITH THE UNIVERSITY OF ALBERTA. This project uses publicly available data provided on uAlberta’s website to make schedules



uAlberta Course Scheduler

MEVN (MongoDB, Express, Vue, Node) stack based web application that helps students plan their university schedule.

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project

  2. Getting Started

  3. Roadmap
  4. Contributing
  5. License
  6. Contact

About The Project

As the name implies uAlberta course scheduler is schedule making webApp. Using the latest vue2, vuetify and other mainstream technology development, The webApp can be used to create various combinations of time tables for students to plan their courses. The webApp is built with the MEVN stack (MongoDB, Express, Vue, Node) and is hosted on Netlify. In the backend the data is stored in a MongoDB database and is scrapped using puppeteer.js from the uAlberta’s course catalogue and gets served to the frontend using expressjs api routes.

Product Name Screen Shot

Course name like ENGL, MATH, STAT etc can be typed in the Course Name text field and course number like 101, 102, 174 etc then upto 5 courses can be added


After hitting the submit button the input form is clear and reloading and the user is presented with a time table

3 Clicking on individual tiles would expand into a card revealing more details about the selected course

(back to top)

Built With

  • MongoDB
  • Express.js
  • Vue
  • NodeJS
  • JavaScript
  • Vuetify

(back to top)

Getting Started


  • npm
    npm install npm@latest -g

Frontend Installation

  1. Get a Google Developer API Key at https://console.developers.google.com/
  2. Clone the repo
    git clone https://github.com/1pharaxh/uAlberta-course-scheduler.git
  3. Change Directory to client
    cd client
  4. Install NPM packages
    npm install
  5. Enter your API in client/src/main.js
    key = 'ENTER YOUR API';
  6. Compiles and hot-reloads for development
    npm run serve
  7. Compiles and minifies for production
    npm run build

(back to top)


  • Improve the individual Calendar component styling
  • Add a ratemyprofessor.com rating system for professors
    • This is should appear on the expansion card for course tiles.
  • Add a “Save” button to the Calendar component
    • That should download a png image of the calendar
  • Improve the scrapping to work for a wider range of courses
    • Improve the backend api to schedule more efficiently

See the open issues for a full list of proposed features (and known issues).

(back to top)


Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

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!

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

(back to top)


Distributed under the MIT License.

(back to top)


Project Link: https://github.com/1pharaxh/uAlberta-course-scheduler

(back to top)


View Github