/education-portal

It is an information system about students' lectures, schedules, absences, etc. Stack: Spring, Angular, MySQL

Primary LanguageJava

Education Portal workflow live-demo

Java 17 Spring Boot 2.7.5 Gradle 7.3.3 Angular 15.0.1 TypeScript 4.6.4 MySQL 8.0.13

Description

This is a student information system for high school students in Association for the Support of Contemporary Living (NGO in Turkey). It is a web application that is used to manage the students, teachers, courses, schedules, exams. It is developed using Java, Spring Boot, Spring Security, Angular, MySQL

Installation

You can use the source code to build Java and Angular applications separately or you can pull the docker images of the repository to run the application.

git clone https://github.com/mharikmert/education-portal
docker pull ghcr.io/mharikmert/portal-backend:latest 
docker pull ghcr.io/mharikmert/portal-frontend:latest

Configuration

Environment variables are set in the application properties file as follows

spring.profiles.active = ${ACTIVE.PROFILE:dev}
spring.datasource.url = ${DB_HOST}
spring.datasource.username = ${DB_USERNAME}
spring.datasource.password = ${DB_PASSWORD}
spring.mail.host = ${MAIL_HOST}
spring.mail.username = ${MAIL_USER}
spring.mail.password = ${MAIL_PASSWORD}
spring.mail.port = ${MAIL_PORT}
jwt_secret = ${JWT_SECRET}

Run

Backend application requires an environment variable file as you see above, it can be done by uncommenting the env_file line in the docker-compose.yaml file and specifying the file path or simply running the backend container with the .env file.

Ss

Build and Run with compose

docker compose up -d

Pull the images and Run

docker run -p 8080:8080 --env-file /path/to/env/.env ghcr.io/mharikmert/portal-backend:latest
docker run -p 4200:80 ghcr.io/mharikmert/portal-frontend:latest

You can see running containers with docker ps

Contributing

Pull requests are welcome. For bug reports, please open an issue.