Skip to content

Latest commit

 

History

History
40 lines (21 loc) · 1.47 KB

README.md

File metadata and controls

40 lines (21 loc) · 1.47 KB

Scheduler Project

Note: Since commit 7dc3403, the auth process is overhauled. This removes some processes that the original website version showcased, including email OTPs, password hashing, and user registration approval.

This is a functional, full-stack website that is complete with an interactible calendar, a websocket notification and chat system and roles.

Installation

Install required Nodejs dependencies

  1. npm i

Setting up the Prisma database

  1. Create the MySQL server in a Podman container.

     podman run -d --name=mysql1 -p 3306:3306 -v ./mysqldata:/var/lib/mysql:Z -e MYSQL_ROOT_PASSWORD=password -e MYSQL_ROOT_HOST=% -e MYSQL_USER=infodb_user -e MYSQL_PASSWORD=sqlpassword -e MYSQL_DATABASE=infodb mysql/mysql-server
    
  2. Start the MySQL Podman container.

     podman start mysql1
    
  3. Only run this if the user did not generate

     podman exec -it mysql1 mysql -uroot -p
    
     CREATE USER 'infodb_user'@'%' INDENTIFIED BY 'JB123';
    
  4. Grant access to the database and to creating shadow databases.

     GRANT CREATE, ALTER, DROP, REFERENCES, INDEX ON *.* TO 'infodb_user'@'%';
    
     GRANT ALL PRIVILEGES ON infodb.* TO 'infodb_user'@'%';
    
  5. Create the database structure using Prisma.

     npx prisma db push
     npx prisma migrate dev --name init
    

To update the database on deployment, run npx prisma migrate deploy. This will require that the migration files are included in the version control.