Skip to content

College Lost & Found Tracker - A Java console app with MySQL for managing campus lost items. Features: secure login, role-based access, item tracking with auto-generated IDs, search by category/location/status, admin reports. Uses JDBC, SHA-256 encryption, and menu-driven UI for efficient item recovery.

License

Notifications You must be signed in to change notification settings

vishnupriyanpr/FindStuff

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FindStuff - Lost & Found Item Tracker - College Management System

Enterprise Java console application with MySQL integration for campus lost item recovery

Built on - Java Database - MySQL Architecture License


πŸš€ Overview

College Lost & Found Tracker is a comprehensive console-based management system designed to streamline campus lost item recovery:

  • Secure authentication with SHA-256 password hashing and salt-based encryption
  • Role-based access control with Admin and Student privilege levels
  • Auto-generated tracking numbers (Format: LF-YYYYMMDD-XXXX) for efficient item identification
  • Advanced search functionality with multi-criteria filtering by category, location, and status
  • Business intelligence dashboard with comprehensive admin reports and analytics
  • JDBC optimization with prepared statements, connection pooling, and ResultSet management

Built with pure Java, MySQL database, and enterprise design patterns for scalability and reliability.


🌟 Key Features

Feature Description
πŸ” Secure Authentication SHA-256 password hashing with custom salt generation, failed login tracking, and account activation management
πŸ‘₯ Role-Based Access Dual privilege system: Admin (full CRUD operations) and Student (personal item management and search)
πŸ“Š Item Tracking System Auto-generated unique tracking numbers, multi-status workflow (LOST/FOUND/CLAIMED/RETURNED), and timestamp tracking
πŸ” Advanced Search Engine Keyword search across multiple fields, category/location/status filters, and advanced multi-criteria search
πŸ“ˆ Admin Dashboard User management, item oversight, system reports (status/category/activity), and bulk operations
🎨 Console UI Framework Custom-built ConsoleUI with formatted tables, input validation, menu navigation, and cross-platform screen clearing

πŸ“ Project Structure

πŸ“ lost-and-found-tracker/ β”œβ”€β”€ πŸ“ backend/ β”‚ β”œβ”€β”€ πŸ“„ DatabaseConnection.java # Singleton DB connection with pooling β”‚ β”œβ”€β”€ πŸ“„ PasswordUtil.java # SHA-256 hashing utilities β”‚ β”œβ”€β”€ πŸ“„ ValidationUtil.java # Input validation engine β”‚ β”œβ”€β”€ πŸ“„ User.java # User model/POJO β”‚ β”œβ”€β”€ πŸ“„ Item.java # Item model/POJO β”‚ β”œβ”€β”€ πŸ“„ UserOperations.java # User CRUD operations β”‚ β”œβ”€β”€ πŸ“„ ItemOperations.java # Item CRUD operations β”‚ └── πŸ“„ SearchOperations.java # Advanced search functionality β”œβ”€β”€ πŸ“ frontend/ β”‚ β”œβ”€β”€ πŸ“„ ConsoleUI.java # Reusable UI components β”‚ β”œβ”€β”€ πŸ“„ LoginView.java # Authentication screens β”‚ β”œβ”€β”€ πŸ“„ ItemView.java # Item management views β”‚ β”œβ”€β”€ πŸ“„ SearchView.java # Search interface β”‚ β”œβ”€β”€ πŸ“„ StudentMenu.java # Student dashboard β”‚ β”œβ”€β”€ πŸ“„ AdminMenu.java # Admin dashboard β”‚ └── πŸ“„ Main.java # Application entry point β”œβ”€β”€ πŸ“„ schema.sql # Database schema β”œβ”€β”€ πŸ“„ database.properties # DB configuration

πŸš€ Core Capabilities


Database Architecture πŸ—„οΈ

  • Schema Design: 3-table normalized structure (users, items, status_updates) with foreign key constraints
  • User Table: Secure credential storage, role management, login tracking, account activation flags
  • Item Table: Comprehensive metadata (tracking_number, category, location, dates), status workflow, soft-delete support
  • Status Updates: Complete audit trail with timestamp logging and user attribution
  • Indexes: Optimized queries with indexes on tracking_number, username, status, category

Security Implementation πŸ”’

Password Security: SHA-256 hashing β†’ Custom salt generation β†’ Secure verification β†’ Account lockout after failed attempts
SQL Injection Prevention: PreparedStatement usage β†’ Parameter binding β†’ Input sanitization β†’ Validation layer
Access Control: Role-based permissions β†’ Session management β†’ Admin privilege checks β†’ User data isolation
Data Integrity: Foreign key constraints β†’ Transaction support β†’ Soft-delete pattern β†’ Audit logging


Search & Analytics πŸ“Š

  • Search Capabilities: Keyword search with LIKE patterns, Category filtering, Location-based search, Status tracking
  • Admin Reports: Items by status (LOST/FOUND/CLAIMED/RETURNED), Category distribution analysis, User activity metrics, System performance statistics
  • Data Export: SQL query results, Business insights, User reports, Item tracking history

Technical Implementation πŸ”§

MVC Architecture: Clear separation of concerns β†’ Backend services β†’ Frontend views β†’ Modular design
JDBC Optimization: Connection pooling β†’ PreparedStatements β†’ ResultSet management β†’ Resource cleanup
Console UI Framework: Formatted tables β†’ Input validation β†’ Menu navigation β†’ Cross-platform support
Error Handling: Try-catch-finally patterns β†’ User-friendly messages β†’ Graceful degradation β†’ Exception logging


πŸš€ Quick Start

Prerequisites

Required Softwares: JDK 8 or higher MySQL Server 5.7+ MySQL Connector/J JDBC Driver (mysql-connector-j-8.0.33.jar) Command Prompt / Terminal

Note:

add your actual local mysql password in- database.properties file - "db.password= //your device mysql password " in this line

Installation

1. Clone repository git clone https://github.com/vishnupriyanpr/lost-and-found-tracker.git cd lost-and-found-tracker 2. Setup MySQL Database mysql -u root -p < schema.sql 3. Configure database.properties db.driver=com.mysql.cj.jdbc.Driver db.url=jdbc:mysql://localhost:3306/lostfound_db db.username=root db.password=your_password 4. Download MySQL JDBC Driver Place mysql-connector-j-8.0.33.jar in project root Download: https://dev.mysql.com/downloads/connector/j/ 5. Compile Java files javac -cp ".;mysql-connector-j-8.0.33.jar" backend/.java frontend/.java 6. Run Application java -cp ".;mysql-connector-j-8.0.33.jar" frontend.Main

First Run

Register Admin Account Choose "Register New Account" Enter username: admin Enter email: admin@college.edu Enter phone: 1234567890 Enter password: admin123 Select role: ADMIN Login and Explore Username: admin Password: admin123

πŸ’‘ Usage Examples

Student Operations

Report Lost Item Login β†’ Report Lost Item Item Name: Blue Backpack Category: PERSONAL Location: Library 2nd Floor Date Lost: 2025-10-24 Get Tracking Number: LF-20251024-0001 Search Items Login β†’ Search Items Choose filter: Category Select: ELECTRONICS View results in formatted table

Admin Operations

View All Users Login as Admin β†’ View All Users See user table with ID, username, email, role, status Generate Reports Login as Admin β†’ Generate Reports Choose: Items by Status Report View: LOST (15), FOUND (12), CLAIMED (5), RETURNED (3) Delete Item Login as Admin β†’ Delete Item Enter Tracking Number: LF-20251024-0001 Confirm deletion

πŸ—ƒοΈ Database Schema

-- Users Table CREATE TABLE users ( user_id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) UNIQUE NOT NULL, hashed_password VARCHAR(64) NOT NULL, email VARCHAR(100) UNIQUE NOT NULL, phone VARCHAR(15), role ENUM('STUDENT', 'ADMIN') DEFAULT 'STUDENT', is_active BOOLEAN DEFAULT TRUE, failed_login_attempts INT DEFAULT 0, last_login TIMESTAMP NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Items Table CREATE TABLE items ( item_id INT PRIMARY KEY AUTO_INCREMENT, tracking_number VARCHAR(20) UNIQUE NOT NULL, user_id INT NOT NULL, item_name VARCHAR(100) NOT NULL, description TEXT, category ENUM('ELECTRONICS','BOOKS','PERSONAL','DOCUMENTS','ACCESSORIES','OTHER'), location VARCHAR(100), date_lost DATE, date_found DATE, status ENUM('LOST','FOUND','CLAIMED','RETURNED') DEFAULT 'LOST', found_by INT, is_active BOOLEAN DEFAULT TRUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(user_id), FOREIGN KEY (found_by) REFERENCES users(user_id) );

🎯 Features Roadmap

Phase 1 (Current) βœ…

  • βœ… User authentication and registration
  • βœ… Lost/Found item reporting
  • βœ… Advanced search functionality
  • βœ… Admin dashboard and reports
  • βœ… Item tracking system

Phase 2 (Planned) 🚧

  • πŸ”„ Email notifications for matches
  • πŸ”„ Image upload support
  • πŸ”„ SMS alerts integration
  • πŸ”„ QR code generation for items
  • πŸ”„ Mobile app development

Phase 3 (Future) 🎯

  • πŸ“Š AI-powered item matching
  • 🌐 Web-based interface
  • πŸ“± Mobile push notifications
  • πŸ” Two-factor authentication
  • πŸ“ˆ Advanced analytics dashboard

🀝 Contributing

Contributions are welcome! Development guidelines:

  1. Fork Repository β†’ Create feature branch (feature/AmazingFeature)
  2. Code Standards β†’ Follow Java conventions β†’ Comment complex logic β†’ Write clean code
  3. Testing β†’ Test all CRUD operations β†’ Verify SQL queries β†’ Check error handling
  4. Documentation β†’ Update README β†’ Add code comments β†’ Document new features
  5. Submit PR β†’ Detailed description β†’ Link related issues β†’ Request review

Areas for Contribution:

  • Backend Enhancement - API development - Cloud integration - Performance optimization - Security hardening
  • Frontend Development - GUI with JavaFX/Swing - Web interface - Mobile app - Dashboard improvements
  • Database Optimization - Query optimization - Caching layer - Database migrations - Backup automation

πŸ“œ License

MIT License (see LICENSE file)


πŸ™Œ Acknowledgments & Core Team

This project is crafted with precision and innovation by Vishnupriyan P R.

Vishnupriyan P R
Vishnupriyan P R


JDBC Optimization β€’ Security Implementation β€’ Enterprise Architecture

Special Thanks

  • MySQL Community - Database engine and JDBC driver
  • Java Community - Platform and libraries
  • GitHub - Version control and collaboration platform

πŸ“ž Support & Contact


πŸ” Connecting Lost Items with Their Owners Through Smart Technology 🎯

Made with ❀️ for College Communities

About

College Lost & Found Tracker - A Java console app with MySQL for managing campus lost items. Features: secure login, role-based access, item tracking with auto-generated IDs, search by category/location/status, admin reports. Uses JDBC, SHA-256 encryption, and menu-driven UI for efficient item recovery.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages