A full-stack web application built for Adama Science and Technology University (ASTU) to help students report, search, and claim lost and found items on campus. The system streamlines the process of reuniting students with their belongings through an intuitive interface and role-based workflow.
The application is live and accessible at:
👉 https://astu-lostfound.onrender.com
| Feature | Description |
|---|---|
| User Authentication | Secure registration and login system with password hashing |
| Report Lost Items | Submit detailed reports for lost belongings with images |
| Report Found Items | Log found items to help others locate their property |
| Image Upload | Upload and manage item images securely |
| Search & Filter | Find items by category, date, location, and status |
| Claim Requests | Submit claims with proof descriptions for found items |
| Admin Dashboard | Comprehensive statistics and management interface |
| Approval Workflow | Admin review system for claim requests |
| Role-Based Access | Different permissions for students and administrators |
- Password hashing using Werkzeug security
- CSRF protection with Flask-WTF
- Session-based authentication with Flask-Login
- Secure file upload validation (allowed extensions, size limit)
- Input sanitization and validation
- Role-based access control middleware
- Flask (Python web framework)
- Flask-SQLAlchemy (ORM)
- Flask-Login (Authentication)
- Flask-WTF (Form handling & CSRF)
- Werkzeug (Security utilities)
- SQLite (for development)
- SQLAlchemy (database abstraction)
- HTML5
- Bootstrap 5
- Jinja2 Templating
- CSS3
- Gunicorn (WSGI server)
- Render (cloud platform)
astu_lost_found/
├── app/
│ ├── models/
│ │ ├── __init__.py
│ │ ├── user.py
│ │ ├── item.py
│ │ └── claim.py
│ ├── routes/
│ │ ├── __init__.py
│ │ ├── auth.py
│ │ ├── main.py
│ │ ├── items.py
│ │ └── admin.py
│ ├── templates/
│ │ ├── base.html
│ │ ├── index.html
│ │ ├── about.html
│ │ ├── auth/
│ │ │ ├── login.html
│ │ │ ├── register.html
│ │ │ └── profile.html
│ │ ├── items/
│ │ │ ├── report.html
│ │ │ ├── search.html
│ │ │ ├── detail.html
│ │ │ ├── claim.html
│ │ │ └── my_items.html
│ │ └── admin/
│ │ ├── dashboard.html
│ │ ├── claims.html
│ │ ├── items.html
│ │ └── users.html
│ └── static/
│ └── uploads/
├── config.py
├── requirements.txt
├── run.py
└── README.md
Follow these steps to set up the project locally:
- Clone the repository
git clone https://github.com/greattitandev/astu_lost_found.git
cd astu_lost_found- Create virtual environment
python -m venv venv- Activate virtual environment
Windows:
venv\Scripts\activateMac/Linux:
source venv/bin/activate- Install dependencies
pip install -r requirements.txt- Run the application
python run.py- Access the application
Open your browser and navigate to:
http://localhost:5000
The application is deployed on Render using Gunicorn as the WSGI server.
Render Configuration
- Build Command:
pip install -r requirements.txt - Start Command:
gunicorn run:app - Python Version: 3.9+
Environment Variables
FLASK_ENV: productionSECRET_KEY: [Your secure secret key]DATABASE_URL: SQLite database path (or upgrade to PostgreSQL later)
| Role | Password | |
|---|---|---|
| Admin | admin@astu.edu | admin123 |
| Student | Register new account | User-defined |
Note: Change the default admin password in production!
This project is developed for educational purposes at Adama Science and Technology University.
It is licensed under the MIT License.
See the LICENSE file for details.
Developed by ASTU Student • 2026
