A comprehensive mobile application for reporting, searching, and claiming lost-and-found items on campus. Built with React Native frontend and Node.js backend, featuring role-based authentication and admin management.
- Authentication & Roles: University email login with Student, Staff, Teacher, and Admin roles
- Item Reporting: Report lost/found items with photos, descriptions, and location details
- Search & Filter: Advanced search by name, description, location, category, and date
- Main Dashboard: Organized tabs for Lost, Found, and All items with floating action button
- Item Details: Comprehensive item information with QR codes and claim functionality
- Claim Process: Submit claims with proof, reviewed by Security Intelligence Division (SID)
- Messaging System: In-app chat between users and admins
- User Profiles: Personal statistics, points system, and profile management
- Admin Dashboard: Complete management interface for SID administrators
- Approve/deny claims with admin notes
- Edit, archive, or delete items
- Manage user roles and permissions
- Analytics dashboard with statistics
- Category breakdown and user activity monitoring
- React Native with Expo
- TypeScript for type safety
- React Navigation for navigation
- React Native Paper for UI components
- React Hook Form for form management
- Axios for API communication
- Node.js with Express
- TypeScript for server-side code
- Supabase for database and authentication
- JWT for token-based authentication
- Multer for file uploads
- QRCode for QR code generation
- Supabase PostgreSQL with Row Level Security (RLS)
- Comprehensive schema with users, items, claims, messages, and notifications
- Backblaze B2 for image storage (configured but not implemented)
- Vercel for serverless deployment
- Supabase Realtime for live updates
The app includes screens that match the provided mockups:
- Login screen with role selection
- Main dashboard with Lost/Found/All tabs
- Item detail page with claim and message buttons
- Report item form with image upload
- Claim process with proof submission
- Admin dashboard with statistics
- Node.js (v16 or higher)
- npm or yarn
- Expo CLI
- Supabase account
- Backblaze B2 account (for image storage)
-
Clone the repository
git clone <repository-url> cd ClaimIT/backend
-
Install dependencies
npm install
-
Environment Configuration
cp env.example .env
Update the
.envfile with your credentials:SUPABASE_URL=your_supabase_url SUPABASE_ANON_KEY=your_supabase_anon_key SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key JWT_SECRET=your_jwt_secret B2_KEY_ID=your_backblaze_key_id B2_APPLICATION_KEY=your_backblaze_application_key B2_BUCKET_NAME=claimit-images -
Database Setup
- Create a new Supabase project
- Run the SQL schema from
database/schema.sql - Enable Row Level Security policies
-
Start the server
npm run dev
-
Navigate to mobile directory
cd ../mobile -
Install dependencies
npm install
-
Update API configuration Edit
src/services/api.tsand update theBASE_URLfor your backend. -
Start the development server
npm start
-
Run on device/simulator
# iOS npm run ios # Android npm run android
The database includes the following main tables:
users- User profiles and authenticationitems- Lost/found items with metadataclaims- Item claim requests and statusmessages- User-to-user and admin messagingnotifications- System notificationscategories- Item categorization
The app uses university email validation with the following domains:
.edu- Standard educational institutions.ac.- Academic institutionsuniversity.- University domainscollege.- College domains
- Material Design 3 with custom ClaimIT branding
- Dark red/maroon primary color scheme matching mockups
- Responsive design for various screen sizes
- Intuitive navigation with drawer and tab navigation
- Real-time updates for messages and notifications
- QR code generation for item verification
- Image upload with camera and gallery support
The admin interface provides:
- Statistics Overview: Items, claims, and user metrics
- Item Management: View, edit, archive, or delete items
- Claim Review: Approve/reject claims with admin notes
- User Management: View users and modify roles
- Category Analytics: Breakdown of items by category
- Recent Activity: Latest items and user actions
POST /api/auth/login- User loginPOST /api/auth/register- User registrationGET /api/auth/me- Get current user profile
GET /api/items- List items with filtersPOST /api/items- Create new itemGET /api/items/:id- Get item detailsPUT /api/items/:id- Update itemDELETE /api/items/:id- Delete item
GET /api/claims- List claimsPOST /api/claims- Submit claimPUT /api/claims/:id/status- Update claim status (admin)
GET /api/messages/conversations- List conversationsPOST /api/messages- Send messageGET /api/messages/conversation/:id- Get conversation messages
GET /api/admin/dashboard- Admin dashboard statisticsGET /api/admin/items- Admin item managementGET /api/admin/users- User managementPUT /api/admin/users/:id/role- Update user role
- Connect your GitHub repository to Vercel
- Configure environment variables in Vercel dashboard
- Deploy automatically on push to main branch
- Android: Use Expo Application Services (EAS) or build locally
- iOS: Use EAS or Xcode for App Store submission
# Build for production
eas build --platform android
eas build --platform ios
# Submit to stores
eas submit --platform android
eas submit --platform ios- AI Image Recognition: Automatic item matching using ML
- Geo-tagging: Location-based lost/found tracking
- Reward Leaderboard: Gamification with points and achievements
- Campus ID Integration: Direct integration with university systems
- Push Notifications: Real-time alerts for claims and messages
- Offline Support: Cached data for offline viewing
This project is licensed under the MIT License - see the LICENSE file for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
For support and questions:
- Create an issue in the GitHub repository
- Contact the development team
- Check the documentation in the
/docsfolder
- Design inspiration from the provided mockups
- Supabase for excellent backend-as-a-service
- React Native community for extensive documentation
- Expo team for the amazing development platform
ClaimIT - Making campus life easier, one found item at a time! ๐๐ฑ