Code Monkey home page Code Monkey logo

unischeduler's Introduction

UniScheduler

An application to create timetables for universities

How to use

Clerk

This application uses Clerk for authentication. To use this application, you need to create a new project on Clerk and add the secret and publishable keys for the project in the environment variables of the projects (.env).

This app also depends on webhooks to sync user clerk accounts with the database. Therefore, you also need to create two webhooks to the following endpoints:

  • /api/webhooks/session
  • /api/webhooks/user

For those endpoints, you also need to provide the webhook secrets to the relevant environment variables (CLERK_WEBHOOK_SECRET_SESSION and CLERK_WEBHOOK_SECRET_USER).

To test the webhooks locally, you can use a tunneling application (e.g. ngrok).

Database migrations

This app uses Prisma. The migration files are located at /prisma/migrations. You need to perform the migrations manually.

Scheduler

The scheduler used in the app to generate timetables is custom-made and available here. Since the scheduler is made in ECLiPSe Prolog you can use this server to run and interact with it.

Running the application

To run the application you need to setup the environment based on the above paragraphs. Alternatively, you can use the included docker-compose file to start a postgres database and a scheduler.

NOTE: For the database to work properly you need to perform the migrations first. To perform the migrations you can use Prisma and run the following command pnpm prisma migrate deploy. Since this project uses pnpm it is advised to it instead of another package manager (e.e. npm). You can install pnpm by having nodejs installed and running the folowing command npm install -g pnpm.

NOTE 2: To be able to access the dashboard without tampering with the database you need to add an email to the ADMIN_EMAIL environment variable.

Docker

This app was built to be hosted in a docker-compose. You can run the whole app be having docker installed and running docker-compose up.

unischeduler's People

Contributors

steliosmagalios avatar

Watchers

 avatar

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.