birkagal / college-finance-digital-twin

Full stack project written using Java Spring Boot framework developed during Integrative Course with 5 other team members using Agile methodologie

Home Page:https://integrative-demo.herokuapp.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

College Finance Digital Twin

Course project for the Integrative Software Development course. March-July 2021.

Developed a full stack application from scratch with five other team members in an agile development cycle working on bi-weekly sprints as part of the integrative software development course. The main component we developed was the server, which was written using Spring Boot Framework. The data is maintained using MySQL. We also made a small and simple client side with HTML and Javascript that communicate with the server. The server is hosted on Heroku and can be accessed using this link: https://integrative-demo.herokuapp.com/

The first step of the process was writing the Requirment document. That document was the guiding hand during developing stage.

Requirements Document

1. Introduction

  • As in every public institute there is a need for a finance department to manage and process the finances for its operation. In our project we build a finance department for such an institute.
  • The system is one that simulates the digital twin of a college financial department. Our system takes into account a college in which we have students attending predetermined courses. As in a student receives a curriculum he cannot change. A worker that teaches predetermined classes and an office that oversees and manages the payment surrounding them.
  • 1.1. Purpose of system

  • The system will manage salary payments to lecturers.
  • The system will allow students to keep track of payments to the college, make a payment.
  • The system will serve to manage the finances and assist the administrative staff in organizing the salaries of workers and payments form students. 1.2. Scope of System
  • The scope of this system is a web-based application to be used as an interface for managing financial information such as worker salary, student balance and generation of reports. Payment processing, course managing, messaging are not a part of the system.
  • 2. Actors and Goals

    2.1. Primary Actor

  • Student
  • Worker
  • Office worker
  • 2.2. Support Actor

  • Bank
  • Credit card center
  • 3. Functional Requirement

    3.1. Use Case Diagram

    use-case-diagram

    3.2. Use Case Details

    3.2.1. Student Payment Statement View

    image

    3.2.2. Worker Salary Statement View

    image

    3.2.3. Office Issues Payment to Worker

    image

    3.2.4. Office Updates Student’s Payment

    image

    3.2.5. Generate Report

    image

    3.2.6. Add New Student

    image

    3.2.7. Add New Worker

    image

    4. Non-Functional Requirements

    image

    Technological Stack and Tools

    1. Front End

  • HTML
  • CSS
  • JavaScript
  • 2. Back End

  • Java
  • Spring Boot
  • 3.Database
  • MySQL
  • Clever Cloud
  • MySQL Workbench
  • 4. Testing

  • Postman
  • Junit
  • 5. Miscellaneous

  • Microsoft Office
  • Google Docs
  • Trello (Kanban)
  • StarUML
  • Usage of client

    Information on how to run the client<5>
    1. In order to config the urls for the client to work it is a few steps are needed:

      • Start the server and check the port number which should be 8042.
      • in the index.js file, there are two global variable which control the url prefixes for interacting with the localhost of the server. sessionServerURLPrefix contains the url for the server. sessionCurrentURLPrefix contains the url for the current client website running in the browser. Insert into the proper variable your url address and the rest of the client follows automatically.
    2. index.html is the starting point for the website. It is the login page for any of the users in the system (no admin though).

    3. Depending on the email entered we are redirected to student.html (player@example.com), worker.html(worker@example.com) or office.html (manager@example.com).

    4. student.html: In this page we load the information for the specific student that logged in. The course content is stubbed and not from the server. Name and balance is loaded from server.

    5. worker.html: In this page we load the information for the specific worker that logged in. The course content is stubbed and not from the server. Name and balance is loaded from server.

    6. office.html: The control panel for the office worker. There are three sections to this page, student controls, ,worker controls and report generation.

      • clicking on "add student"/"add worker" opens a modal to be filled with information to create a new student\worker and add them to the system.
      • clicking on "show students"/"show workers" displays the current items in the systems according to type.
      • clicking on "generate report" redirects to report.html in which we show financial data calculated form the system.

    IMPORTANT: There is a user and an item in the database which have a unique ID that is required for certain methods to work. ERASING IT WILL BREAK ITEM GETTING FROM SERVER.

    The user is:
    	2021b.Shahar.Hilel.Michael:player@example.com | player.jpg | player@example.com | PLAYER | 2021b.Shahar.Hilel.Michael | player
    The item is:
    	2021b.Shahar.Hilel.Michael:ae1260fa-244a-4108-8660-e6e15b281f81 | true | manager@example.com | 2021-05-30 09:35:24.682000 |
    	{"userId":{"space":"2021b.Shahar.Hilel.Michael","email":"player@example.com"},"role":"PLAYER","username":"player","avatar":"player.jpg","balance":"0"} |
    	ae1260fa-244a-4108-8660-e6e15b281f81 | 2021b.Shahar.Hilel.Michael | {"lat":0,"lng":0} | player player | student.
    

    About

    Full stack project written using Java Spring Boot framework developed during Integrative Course with 5 other team members using Agile methodologie

    https://integrative-demo.herokuapp.com/


    Languages

    Language:Java 63.1%Language:JavaScript 24.2%Language:HTML 8.2%Language:CSS 4.4%