Git Product home page Git Product logo

syllabus's Introduction

Syllabus

Syllabus is an online grade book and school management system. Backend is written in Java 17 using Spring Boot 3.0, and it follows DDD and CQRS architecture design. PostgreSQL was chosen as database for the project. JWT standard is used for role based authorization. Frontend is built with Angular 14 with TailwindCSS for styling. Frontend application follows responsive web design and contains dark mode (switch in bottom right corner).

Application has been deployed to VPS and is available on www.syllabus.edu.pl

There are following roles in the application:
  • STUDENT
  • TEACHER
  • OFFICE
  • DIRECTOR
  • ADMIN

Students see their own subject realisations, together with posts, activities and grades. Teachers see subject realisations which they supervise, and they can manage them, including creating and editing posts, creating and editing activities and grading students. Offices can create, edit and view both current and archived subjects, classes, realisations, users and levels. Directors have same privileges as offices, but additionally they can archive all the resources. Admins have access to all the system functionalities.

In order to create a new account, user should ask for registration code from offices, directors or admins (OFFICE code can be generated only by DIRECTOR or ADMIN, and DIRECTOR code can be generated by ADMIN. Code will contain his role and optionally class if it's student's code.

To run application on your local machine, you have to:

  1. Make sure you have Java, Maven and Node (+ Docker if you want to use docker-compose.yml file) installed on your machine.

  2. Provide relational database on localhost port 5432 with:

    • database name: db
    • username: user
    • password: password
    There is a Docker-dev/docker-compose.yml file prepared, to quickly run PostgreSQL database in a docker container. To do so, you need to navigate to Docker-dev directory and run docker compose up -d command.
  3. Run Spring Boot application

    Navigate to backend directory and run command mvn spring-boot:run. You don't need to specify dev run profile, as it's set as default. If server doesn't start, check if database is properly running and it accepts connections on specified terms. If everything went correctly, backend application is listening on localhost port 8080.
  4. Run Angular application

    Navigate to frontend directory and run command npm install and npm run start. If everything went correctly, frontend application is listening on localhost port 4200. Now you can see working application on http://localhost:4200. Every change in code will result in live-reload in running angular application.

Production

Application has been dockerized for production deployment (Docker-prod/docker-compose.yml). Production docker-compose.yml isn't meant to run on local machine.

For production, it is strongly recommended to set JWT_SECRET environmental variable, which holds secret used for signing JWTs

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.