Skip to content

SiddakBath/softdev-findr

Repository files navigation

Findr - Lost & Found Application

Overview

Findr is a community-driven lost and found platform built with Flutter and Firebase. The application allows users to report lost items, found items, and search through existing reports to help reunite people with their belongings.

Key Features

  • User Authentication: Secure login and registration using Firebase Auth
  • Report Management: Create, edit, delete, and resolve lost/found item reports
  • Real-time Updates: Live data synchronization using Firebase Firestore
  • Image Upload: Photo attachments for better item identification
  • Search & Filter: Find items by type (lost/found), keywords, and tags
  • Contact System: Connect with reporters to resolve cases
  • Responsive Design: Works across mobile and web platforms

Technology Stack

  • Frontend: Flutter (Dart)
  • Backend: Firebase
  • Authentication: Firebase Auth
  • Database: Cloud Firestore
  • Storage: Firebase Storage (for images)
  • Platforms: Android, iOS, Web

Project Structure

lib/
├── main.dart                 # Application entry point
├── firebase_options.dart     # Firebase configuration
├── models/
│   └── report.dart          # Data model for reports
├── services/
│   ├── auth_service.dart    # Authentication operations
│   └── firestore_service.dart # Database operations
├── screens/
│   ├── home_screen.dart     # Main dashboard
│   ├── login_screen.dart    # User login
│   ├── signup_screen.dart   # User registration
│   ├── report_form_screen.dart # Report creation/editing
│   └── report_detail_screen.dart # Report detail view
└── widgets/
    ├── report_card.dart     # Report display card
    ├── confirmation_dialog.dart # Confirmation dialogs
    └── success_dialog.dart  # Success feedback dialogs

Data Model

Report Model

The core data structure representing lost and found items:

class Report {
  final String id;           // Unique identifier
  final String title;        // Item title
  final String type;         // 'lost' or 'found'
  final String description;  // Detailed description
  final List<String> tags;   // Searchable keywords
  final String colour;       // Item color
  final DateTime timeFoundLost; // When item was lost/found
  final String location;     // Where item was lost/found
  final String reporterName; // Reporter's name
  final String reporterEmail; // Reporter's email
  final String? imageUrl;    // Optional photo URL
  final bool resolved;       // Resolution status
  final DateTime createdAt;  // Report creation timestamp
}

Core Functionality

Authentication

  • User registration with email/password
  • Secure login with error handling
  • Automatic session management
  • Logout functionality

Report Management

  • Creation: Comprehensive form with all required fields
  • Editing: Modify existing reports (owner only)
  • Deletion: Remove reports with confirmation (owner only)
  • Resolution: Mark items as found/claimed
  • Viewing: Detailed report information display

Search & Filter

  • Filter by type (lost/found)
  • Search across titles, descriptions, and tags
  • Real-time search results
  • Client-side filtering for performance

Image Handling

  • Gallery image selection
  • Visual placeholder for missing images
  • Color-coded backgrounds based on item color
  • Error handling for failed image loads

User Interface

Design Principles

  • Consistency: Purple theme throughout the application
  • Accessibility: Clear typography and contrast
  • Responsiveness: Adapts to different screen sizes
  • Feedback: Loading states and success messages

Navigation Flow

  1. Authentication: Login/Signup screens
  2. Dashboard: Home screen with report grid
  3. Report Creation: Form screen for new reports
  4. Report Details: Detailed view with actions
  5. Report Editing: Form screen for modifications

Development Information

Prerequisites

  • Flutter SDK (latest stable version)
  • Dart SDK
  • Firebase project setup
  • Android Studio / VS Code

Setup Instructions

  1. Clone the repository
  2. Install dependencies: flutter pub get
  3. Configure Firebase:
    • Add google-services.json (Android)
    • Add GoogleService-Info.plist (iOS)
    • Update Firebase configuration
  4. Run the application: flutter run

Testing

  • Widget tests for UI components
  • Integration tests for user flows
  • Unit tests for business logic
  • Firebase emulator for local development

Deployment

  • Android: Build APK or AAB for Google Play Store
  • iOS: Archive for App Store
  • Web: Deploy to Firebase Hosting

Code Documentation

Documentation Standards

All code follows comprehensive documentation standards including:

  • Header Comments: File description, author, dates
  • Class Documentation: Purpose, functionality, usage
  • Method Documentation: Parameters, returns, behavior
  • Inline Comments: Complex logic explanations
  • Data Type Documentation: Field descriptions and constraints

Key Documentation Features

  • Functionality Explanation: How each component works
  • Data Flow Documentation: Information flow through the application
  • User Interaction Details: How users interact with features
  • Error Handling: How errors are managed and displayed
  • Testing Information: How to test various features

Future Enhancements

Planned Features

  • Push Notifications: Real-time alerts for matching items
  • Location Services: GPS-based item location
  • Advanced Search: More sophisticated filtering options
  • Social Features: Sharing and community features
  • Analytics: Usage statistics and insights

Technical Improvements

  • Performance Optimization: Caching and lazy loading
  • Offline Support: Local data storage
  • Multi-language Support: Internationalization
  • Accessibility: Enhanced accessibility features
  • Security: Additional security measures

Contributing

Development Guidelines

  1. Follow Flutter best practices
  2. Maintain comprehensive documentation
  3. Write unit tests for new features
  4. Use consistent code formatting
  5. Follow the established architecture patterns

Code Review Process

  • All changes require documentation updates
  • Test coverage for new functionality
  • Performance impact assessment
  • Security review for sensitive operations

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

For technical support or feature requests, please contact the development team or create an issue in the project repository.


Author: Siddak Bath
Created: [Date]
Last Modified: [Date]
Version: v1

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors