You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
πͺ Rento β Party & Event Equipment Rental Platform
A full-stack Spring Boot web application for renting party and event equipment.
Built for CSE 3220 Software Engineering Lab β complete professional workflow demonstration.
Manage products (CRUD), manage users & roles, view all rentals, view payments, process refunds
SELLER
Confirm/activate rentals, process returns, log damage fees, view all rentals
BUYER
Browse products, create rentals, view own rentals, cancel own rentals
π API Endpoints
Auth
Method
URL
Access
Description
GET
/auth/login
Public
Login page
POST
/auth/login
Public
Process login
GET
/auth/register
Public
Register page
POST
/auth/register
Public
Create account
POST
/auth/logout
Any
Logout
Products
Method
URL
Access
Description
GET
/products
Authenticated
List all products
GET
/products/{id}
Authenticated
Product detail
GET
/products/new
ADMIN
Create product form
POST
/products/new
ADMIN
Create product
GET
/products/edit/{id}
ADMIN
Edit product form
POST
/products/edit/{id}
ADMIN
Update product
POST
/products/delete/{id}
ADMIN
Delete product
Rentals
Method
URL
Access
Description
GET
/rentals
Authenticated
List rentals (buyers: own; others: all)
GET
/rentals/{id}
Owner/SELLER/ADMIN
Rental detail
GET
/rentals/new
BUYER
New rental form
POST
/rentals/new
BUYER
Create rental
POST
/rentals/{id}/confirm
SELLER/ADMIN
Confirm rental
POST
/rentals/{id}/activate
SELLER/ADMIN
Activate rental
POST
/rentals/{id}/cancel
Owner/SELLER/ADMIN
Cancel rental
GET
/rentals/{id}/return
SELLER/ADMIN
Return form
POST
/rentals/{id}/return
SELLER/ADMIN
Process return
Admin
Method
URL
Access
Description
GET
/admin/users
ADMIN
Manage users
POST
/admin/users/{id}/role
ADMIN
Update user role
POST
/admin/users/{id}/delete
ADMIN
Delete user
GET
/admin/payments
ADMIN
View all payments
POST
/admin/payments/{id}/refund
ADMIN
Refund payment
βΆοΈ Run Locally
Prerequisites
Java 17+
Maven 3.8+
Docker & Docker Compose
Option 1: Docker Compose (Recommended)
# Clone the repo
git clone https://github.com/commoner02/rento.git
cd rento
# Create environment file
cp .env.example .env
# Edit .env with your values if needed# Start everything
docker compose up --build
# App runs at http://localhost:8080
Option 2: Local Maven (PostgreSQL required)
# Create PostgreSQL database
createdb rentodb
# Set environment variablesexport DATABASE_URL=jdbc:postgresql://localhost:5432/rentodb
export DB_USERNAME=postgres
export DB_PASSWORD=postgres
# Run
mvn spring-boot:run
# Run all tests (uses H2 in-memory database β no PostgreSQL needed)
mvn test# Run only unit tests
mvn test -Dtest="*ServiceTest"# Run only integration tests
mvn test -Dtest="*ControllerTest"
Test coverage:
24 unit tests across UserServiceTest, ProductServiceTest, RentalServiceTest
11 integration tests across ProductControllerTest, RentalControllerTest
Tests run with H2 in-memory database (no external dependencies)
π CI/CD Pipeline
Push to develop/main
β
βΌ
[GitHub Actions]
β
ββ Checkout code
ββ Setup JDK 17
ββ Run tests (H2, no DB needed)
ββ Build JAR
ββ On main push β Trigger Render deploy
Setup:
In your GitHub repo β Settings β Secrets, add:
RENDER_API_KEY β from Render account settings
RENDER_SERVICE_ID β from your Render service URL