The application is currently live and deployed in the cloud!
👉 Visit UniFind Live
- 🤖 AI-Powered Item Matching: Integrates with Google Gemini AI to analyze item descriptions and automatically suggest potential matches between lost and found items.
- 🔐 Secure Authentication: Integrated with Google OAuth2 so students can log in seamlessly using their existing university Google accounts.
- 📸 Cloud Image Storage: Uploaded photos of lost items are securely stored and served globally via Cloudinary.
- ☁️ Cloud Database: Real-time data persistence using a fully managed Aiven MySQL database.
- 🎨 Responsive UI: A beautiful, accessible, and mobile-friendly frontend crafted with HTML5, CSS3, Thymeleaf, and FontAwesome.
- 📊 Admin Dashboard: Specialized management views for campus administrators to oversee reports and claim requests.
- Java 17 & Spring Boot 3
- Spring Security (OAuth2 Authentication)
- Spring Data JPA / Hibernate (ORM)
- Maven (Dependency Management)
- Thymeleaf (Server-side templating)
- HTML5 & Vanilla CSS3 (Custom vibrant design system)
- FontAwesome (Icons)
- Hosting: Render.com (Dockerized Container Deployment)
- Database: Aiven (Managed MySQL)
- Image Storage: Cloudinary SDK
- AI Integration: Google Gemini Pro API
Want to run the code on your own laptop? Follow these steps:
- Java 17 or higher installed
- Git installed
git clone https://github.com/janveryuu/unifind.git
cd unifindTo run all the features (like Google Login, Gemini AI, and Cloudinary), you need to provide your own API keys. Create an application-local.properties or set these in your terminal environment:
GEMINI_API_KEYGOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRETCLOUDINARY_URLSPRING_DATASOURCE_URLSPRING_DATASOURCE_USERNAMESPRING_DATASOURCE_PASSWORD
You can use the included Maven wrapper to start the server:
# On Mac/Linux
./mvnw spring-boot:run
# On Windows
mvnw.cmd spring-boot:runGo to http://localhost:8081 and you will see the UniFind landing page!
This project was developed as part of a collaborative academic group project and is now being showcased as part of my professional development portfolio.
Developed and engineered by Jhan-Jhan17