Marketplace platform for reselling unused goods through characteristic-based matching between requests and offers.
- Why this project
- Features
- Tech stack
- Project structure
- Installation
- Usage
- Screenshots
- Notes
- Developer
Traditional marketplaces for unused goods are fragmented and lack structural logic. Supply and demand struggle to meet because there's no dedicated space where users can search for goods based on specific characteristics rather than exact product names. This creates inefficiency in the reuse economy.
E-Cycle solves this by providing a characteristic-based matching system that lets users offer goods they no longer need and search for items based on desired features, automatically pairing compatible requests and offers while facilitating negotiations with minimal effort.
- User registration and secure authentication
- Profile management with personal information
- Request creation with characteristic-based specifications
- Offer creation with detailed product information
- Automatic matching between compatible requests and offers
- Price-range-aware matching algorithm
- Negotiation interface between matched parties
- Accept/reject decisions with clear feedback
- Advanced filtering by category, nature, brand, and characteristics
- Category browsing
- Java 24
- Spring Boot
- Spring Web (MVC + REST)
- Spring Data JPA / Hibernate
- Thymeleaf
- MySQL
- Maven
- Lombok
.
├─ src/
│ └─ main/
│ ├─ java/ecycle/ecycle/
│ │ ├─ controllers/ # MVC and REST controllers
│ │ ├─ models/ # JPA entities and request bodies
│ │ ├─ repositories/ # Spring Data repositories
│ │ ├─ services/ # Business logic
│ │ └─ EcycleApplication.java # Application entry point
│ └─ resources/
│ ├─ static/
│ │ ├─ css/ # Stylesheets
│ │ └─ js/ # Client-side scripts
│ ├─ templates/ # Thymeleaf HTML templates
│ └─ application.properties
├─ docs/
│ └─ images/ # UI screenshots
├─ ecycle-empty.sql # Database initialisation script
├─ pom.xml # Maven build configuration
├─ LICENSE
└─ README.md
The project follows a standard Spring Boot layout:
- controllers/: Handles HTTP requests and view routing
- models/: JPA entities and form/request body classes
- repositories/: Database access interfaces
- services/: Core business logic and matching algorithm
- Java 24 or newer
- Maven 3.6 or newer
- MySQL 8.0 or newer
-
Clone the repository:
git clone https://github.com/LorenBll/E-Cycle.git cd E-Cycle -
Create the database and import the schema:
mysql -u [username] -p -e "CREATE DATABASE ecycle;" mysql -u [username] -p ecycle < ecycle-empty.sql
-
Configure the database connection: Edit
src/main/resources/application.propertieswith your credentials:spring.datasource.url=jdbc:mysql://localhost:3306/ecycle spring.datasource.username=[your-username] spring.datasource.password=[your-password]
-
Build and run:
mvn spring-boot:run
-
Open your browser and navigate to
http://localhost:8080
-
Verify prerequisites:
java -version mvn -version
-
Build the project:
mvn clean install
-
Run the application:
mvn spring-boot:run
- Register a new account and log in
- Complete your profile with personal details
- Post a request describing what you are looking for with specific characteristics
- Post an offer listing goods you want to resell
- Browse automatically generated matches between your requests and offers
- Start negotiations with matched parties and accept or reject proposals
- E-Cycle is a school project developed in under two weeks alongside several exam preparations. It is not intended for production use and should not be taken as an example of programming best practices.
Created by LorenBll






