This repository contains an Android application, developed using Node.js / Express and Flutter, with the intention of creating a platform for managing online auctions. This application was developed as part of the "Software Engineering" course taught by professors Sergio Di Martino, Francesco Cutugno, and Luigi Libero Lucio Starace at the University of Naples "Federico II".
DietiDeals24 is a real-time auction application designed to facilitate buying and selling between users through an auction system. Users can create listings, bid on products, receive real-time notifications, and complete transactions with various payment methods.
The app is built with a microservices architecture, separating the frontend (built with Flutter) and backend (built with Node.js and Express). Both the backend and database are hosted within Docker containers for easier environment management.
- Node.js with Express.js for managing APIs and business logic.
- PostgreSQL as the relational database to store user, product, and transaction data.
- Sequelize as the ORM to manage and interact with the database.
- Docker for containerization, simplifying deployment and configuration.
- Cron Jobs for automatic auction management.
- Flutter for a native-like user interface across different platforms.
Before starting, ensure you have installed:
- Node.js (recommended version 14 or higher)
- Flutter (version 2.0 or higher) for the frontend
- Docker and Docker Compose to manage containers
- DBeaver or pgAdmin (optional, for database management)
git clone https://github.com/vinsgiordi/INGSW-Project.git
cd INGSW-Project
Go to the backend directory on your IDE (VSCode or similar)
cd backend
Create a .env file in the backend directory with the following environment variables (note .env.example for more information)
Go to the frontend directory on your IDE (It is recommended to use Android Studio for a more comfortable experience)
cd frontend
Navigate within the requests and replace the base url in case you are hosting the server locally.
Go back to the main directory and use Docker Compose to start the containers:
docker-compose up --build
This command will build and start containers for the backend and the PostgreSQL database.
cd backend
npm start
cd frontend
flutter clean
flutter pub get
flutter run
You can access the database through DBeaver or pgAdmin using the following connection details (assuming you’ve configured an external port for Docker):
- Host: localhost or container IP;
- Port: 54320 or similar;
- User: your-username;
- Password: your-password;
- Database: database-name;
Contributions to this repository are welcome! If you have suggestions for improvements, bug fixes, or new features, please open an issue or submit a pull request.
This repository is licensed under the MIT License.
For any inquiries or assistance, feel free to contact vincenzogiordano99@libero.it.