Skip to content

StavrosMitro/TollAnalysisWebApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Toll Passages Management and Analysis WebApp

A full-stack web application for managing and analyzing toll passages in Greece. Developed as part of the Software Engineering course at ECE NTUA by Dimitris Thivaios, Dimitris Liakis, Vassilis Anastasiadis, and Stavros.


🚀 Features

  • Interactive map of Greece with all toll stations (Leaflet.js)
  • Predictions of car flows using Machine Learning models
  • Statistics for all tolling companies
  • Debt optimization between companies (cross e-pass usage)
  • CLI client for admin and company management
  • API documentation (Swagger/OpenAPI)
  • Comprehensive testing (Jest)

🛠️ Technology Stack

  • Backend: Node.js / Express (REST API)
  • Frontend: React.js
  • Database: MySQL
  • Machine Learning: scikit-learn (Python)
  • Testing: Jest

📦 Setup Instructions

1. Clone the Repository

git clone https://github.com/ntua/softeng24-14.git
cd TollAnalysisWebApp

2. Database Setup (MySQL)

  • Install MySQL Server (v5.7+ recommended).
  • Create and populate the database:
    • Go to /uploads and run:
      python3 passages2mysql.py passes14.csv
    • In /Database_mysql, import schema and data:
      mysql -u root -p < schema.sql
      mysql -u root -p < data.sql
  • See /Database_mysql/README.md for detailed steps.

3. Backend Setup

cd back-end
npm install
node server.js

4. Frontend Setup

cd front-end
npm install
npm start

5. CLI Client Setup

cd cli-client
npm install
npm link
se2414 --help

🔐 Login Credentials

To use the application, you must log in as either an admin or a company user.

  • Admin Login:

    • Username: admin@yme.gov.gr
    • Password: yme123!
    • These credentials are set by default in the database and can be found in back-end/hashPassword.js and are initialized/reset via the backend admin endpoints.
  • Company Users:

    • Usernames and passwords for company users are managed by the admin via the CLI or backend endpoints.
    • Each company user can only access their own company's data.
  • You can log in via the web interface or CLI. If you need to create or reset users, use the admin endpoints or CLI commands.


📖 Documentation

  • UML Diagrams (Activity, Class, Component, Deployment, Sequence)
  • ER Diagrams
  • SRS (Software Requirements Specification)
  • StRS (Stakeholders Requirements Specification)
  • OpenAPI/Swagger docs: http://localhost:9115/api/docs

⚠️ Troubleshooting

  • Port Already in Use:
    Use lsof -i :<PORT> and kill -9 <PID> to free the port.
  • Missing Dependencies:
    Run npm install in each directory.
  • Database Issues:
    Ensure schema and data are imported correctly.

👥 Credits & Contributions

As part of this project, my main focus was on:

  • Developing REST API backend using Node.js and Express
  • Designing the database
  • Contributing to documentation
  • Conducting API functional testing

image

Other contributors:

  • Dimitris Thivaios, Dimitris Liakis, Vassilis Anastasiadis

⭐ Give us a star if you liked the project!

Disclaimer: This project is for educational purposes only and not intended for commercial use.

Releases

No releases published

Packages

 
 
 

Contributors