A comprehensive Lost & Found management system designed specifically for Palawan State University. The platform connects students, faculty, and staff to help reunite lost items with their rightful owners.
- Transparent & Verified - All users authenticated with PalSU credentials
- Direct Messaging - In-app communication between finders and owners
- Moderation System - Admin oversight to prevent spam and ensure quality
- Email Notifications - Automated alerts for item approvals, status updates, and new messages
| Feature | Description |
|---|---|
| Item Posting | Post lost or found items with detailed descriptions, images, and location |
| Item Browsing | Search and filter items by category, date, and status |
| Messaging System | Thread-based messaging with image attachments |
| Claim System | Mark items as claimed/found with completion tracking |
| Success Stories | View reunited items filtered by claimed or found status |
| Archive System | Archive items with reasons (spam, duplicate, resolved, etc.) |
- Dashboard Analytics - Statistics on items, users, and claims
- Moderation Queue - Review pending items before approval
- User Management - Manage user roles and permissions
- Archive Management - View and restore archived items
- Item Editing - Delete/Delist any item
-
Python (3.11+)
-
Django (5.2.8)
-
Django REST Framework (3.15.2)
-
django-allauth (65.3.0) - Authentication & OAuth
-
Pillow (12.0.0) - Image processing
-
Tailwind CSS - Utility-first CSS framework
-
SQLite - Development database
-
PostgreSQL - Production database
HanApp implements a three-tier role system to manage access and permissions:
| Permission | Access |
|---|---|
| View landing page | β |
| Browse approved items | β |
| View item details | β |
| View success stories | β |
| Post items | β |
| Send messages | β |
| Access dashboard | β |
| Permission | Access |
|---|---|
| All public permissions | β |
| Post lost/found items | β |
| Send/receive messages | β |
| Mark own items as complete | β |
| Edit own items | β |
| Delete own items | β |
| View own message threads | β |
| Permission | Access |
|---|---|
| All verified user permissions | β |
| Post items without approval | β |
| Access admin dashboard | β |
| View moderation queue | β |
| Approve/reject items | β |
| Archive items with reasons | β |
| Delete any archived item | β |
| Restore archived items | β |
| Manage user roles | β |
| View all statistics | β |
git clone https://github.com/Ritvent/Re-return.git
cd Re-return# Windows
python -m venv venv
venv\Scripts\activate
# macOS/Linux
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtCreate a .env file in the projectsite directory:
# Django Settings
SECRET_KEY=your-super-secret-key-here
DEBUG=True
# Google OAuth (Required for authentication)
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
# Email Configuration (Optional - for notifications)
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_HOST_USER=your-email@gmail.com
EMAIL_HOST_PASSWORD=your-app-password
EMAIL_USE_TLS=Truecd projectsite
python manage.py migratepython manage.py createsuperuserpython manage.py runserverHanApp uses Google OAuth for authentication, restricted to PalSU email addresses (@psu.palawan.edu.ph).
- Go to Google Cloud Console
- Create a new project or select existing
- Enable the Google+ API
- Configure OAuth consent screen
- Create OAuth 2.0 credentials
- Add authorized redirect URIs:
http://127.0.0.1:8000/accounts/google/login/callback/(development)https://yourdomain.com/accounts/google/login/callback/(production)
Configure SMTP settings for email notifications:
# settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = config('EMAIL_HOST_USER')
EMAIL_HOST_PASSWORD = config('EMAIL_HOST_PASSWORD')- Browse Items - Visit the homepage to see all approved lost and found items
- Search & Filter - Use the search bar and category filters to find specific items
- View Details - Click on any item card to see full details
- Success Stories - Visit the "Success Stories" page to see reunited items
- Click "Post an Item" in the navigation
- Select item type (Lost or Found)
- Fill in item details:
- Title - Brief, descriptive title
- Category - Select from the list of categories
- Description - Detailed description of the item
- Location - Where the item was lost/found
- Date - When it was lost/found
- Contact Number - Your phone number (optional)
- Image - Upload an image (optional but recommended)
- Hide name - Option to post anonymously without showing your name (Lost items only)
- Submit for moderation review
- Click "Contact" on any item
- Fill in the subject and message
- Optionally attach an image
- Send the message
- View replies in "Inbox" or "Sent Messages"
- Navigate to "Lost Items" or "Found Items"
- Find your posted item
- Click "Mark as Complete"
- Select completion status:
- Claimed - Owner found and claimed the item
- Found - Item was found by the owner
- Add optional notes and submit
Access via the admin icon in the navigation bar:
- Statistics - Total items, pending items, users, claimed/found items
- Recent Activity - Latest posted items
- Quick Actions - Navigate to moderation, users, or archives
- Go to Admin Dashboard β Moderation
- Review pending items
- For each item, choose:
- β Approve - Make item visible to all users
- β Reject - Hide item with optional reason
- ποΈ Archive - Archive with reason
- Go to Admin Dashboard β Users
- View all registered users
- Change user roles
- View user statistics
- Go to Admin Dashboard β Archives
- View all archived items
- Filter by archive reason
- Restore items if needed
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes
- Commit with clear messages:
git commit -m "Add: description of changes" - Push to your fork:
git push origin feature/your-feature-name - Open a Pull Request
This project was developed as an academic project for Palawan State University. All rights reserved.