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.
- 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)
- Backend: Node.js / Express (REST API)
- Frontend: React.js
- Database: MySQL
- Machine Learning: scikit-learn (Python)
- Testing: Jest
git clone https://github.com/ntua/softeng24-14.git
cd TollAnalysisWebApp- Install MySQL Server (v5.7+ recommended).
- Create and populate the database:
- Go to
/uploadsand 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
- Go to
- See
/Database_mysql/README.mdfor detailed steps.
cd back-end
npm install
node server.jscd front-end
npm install
npm startcd cli-client
npm install
npm link
se2414 --helpTo 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.jsand are initialized/reset via the backend admin endpoints.
- Username:
-
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.
- 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
- Port Already in Use:
Uselsof -i :<PORT>andkill -9 <PID>to free the port. - Missing Dependencies:
Runnpm installin each directory. - Database Issues:
Ensure schema and data are imported correctly.
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
Other contributors:
- Dimitris Thivaios, Dimitris Liakis, Vassilis Anastasiadis
Disclaimer: This project is for educational purposes only and not intended for commercial use.
