GithubHelp home page GithubHelp logo

eschool's Introduction

eSchool

eSchool is a school management web application based on Spring Boot and developed as graduation project at SoftServe IT Academy.

Core Features

Administrator functionality:

  • Add students and teachers to database
  • Create classes and add students into them
  • Add subjects studied at school
  • Assign teachers and subjects to classes

Teachers functionality

  • View and edit mark book
  • Assign home tasks
  • Add notes for student
  • View school performance chart

Students functionality:

  • View their school diary with schedule
  • View received marks and notes form teacher
  • View assigned home tasks

Start application locally with Docker

  1. Clone the repository:
git clone https://github.com/IF-090Java/eSchool.git
  1. Install latest version of the Docker
  2. Make sure files from 'script' directory are executable
  3. To start application locally execute the following from the root directory of the project:
./scripts/start.sh
  1. To stop and clear application artifacts execute the following from the root directory of the project:
./scripts/stop.sh
  1. To access application home page open localhost:8080

Start application locally

Software

Software required to run this application:

  1. Java
  2. MySQL Server
  3. Git

Installing Java

Download installer appropriate for your operating system from www.oracle.com and run it. Complete installation process by following instructions.

Installing MySQL Server

To install MySQL Server visit https://www.mysql.com/downloads/ and follow installation instructions for your operating system.

Installing Git

To instal Git visit https://git-scm.com/downloads and follow installation instructions for your operating system.

Configuration

The application can be configured using environmental variables.

Database Configuration:

  • DATASOURCE_URL - connection string to database to be used by application (by default it will connect to jdbc:mysql://localhost:3306/eschool?useUnicode=true&characterEncoding=utf8&createDatabaseIfNotExist=true&&autoReconnect=true&useSSL=false)
  • DATASOURCE_USERNAME - username used to access database (default: root)
  • DATASOURCE_PASSWORD - password used to access database (default: root)

Email configuration:

These variables are used by the application to send password recovery emails

  • MAIL_HOST - mail server host (default: smtp.gmail.com)
  • MAIL_PORT - mail server port (default: 587}
  • MAIL_LOGIN - username for the account at the mail host
  • MAIL_PASSWORD - password for the account (in case of Gmail it must be application password)
  • ESCHOOL_APP_HOST - address where application is hosted

Security Configuration

  • PASSWORD_ENCODING_KEY - secret text that is used to encrypt and decrypt passwords
  • JWT_EXPIRATION - lifetime of jwt token in seconds (default value is one hour)
  • ADMIN_USERNAME - initial administrator login login
  • ADMIN_PASSWORD - initial administrator password. It should be encrypted with PASSWORD_ENCODING_KEY. To get encrypted password you can use one of this methods:
    • this service - choose "Two Way Encryption(With Secret Text)" option provide raw password and encoding key and press encrypt
    • if you have jasypt in your maven repository you can use following command:
    java -cp ~/.m2/repository/org/jasypt/jasypt/1.9.2/jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="YOUR_DECRYPTED_PASSWORD" password=YOUR_ENCODIG_KEY algorithm=PBEWithMD5AndDES
    

Run application

  1. Clone the repository:
git clone https://github.com/IF-090Java/eSchool.git
  1. To build and run application execute:

Windows:

./mvnw.cmd spring-boot:run

Linux:

./mvnw spring-boot:run
  1. To access application home page open localhost:8080

eschool's People

Contributors

beazelore avatar bkomar avatar if-090java avatar ihor-kudiarskyi avatar marianavorotniak avatar myroslav94 avatar myroslavderevyanko avatar pdarc avatar ruslankharevych avatar sergiybojko avatar vetal580 avatar vhotsuliak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eschool's Issues

date of the mark

add date field for mark table to prevent manipulation with marks, when teacher or administrator can change the marks after the pupil has seen them

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.