A comprehensive book discovery and tracking mobile application built with Flutter. Discover new books, track your reading progress, create custom book lists, and connect with other book lovers.
Repository for the Server Software
- Search Books: Find books by title with powerful search functionality
- Personalized Recommendations: Get book recommendations based on your preferences
- Category Filtering: Filter recommendations by book categories
- Book Details: View comprehensive information including authors, descriptions, and ISBN data
- Reading Status: Track books as "Will Read", "Reading", "Completed", or "Dropped"
- Status Filtering: Filter your tracked books by reading status
- Progress Management: Easy-to-use interface for updating reading progress
- Custom Book Lists: Create and manage personalized book lists
- Public & Private Lists: Share your lists publicly or keep them private
- Favorites Management: Special "Liked Books" list for your favorites
- List Organization: Add/remove books from multiple lists
- User Profiles: View your own and other users' profiles
- Follow System: Follow other users to see their book activities
- Activity Feed: Stay updated with book activities from users you follow
- Public List Sharing: Discover book lists shared by other users
- Material Design: Clean and intuitive interface following Material Design principles
- Turkish Localization: Full Turkish language support
- Responsive Design: Optimized for different screen sizes
- Custom Icons: Beautiful custom iconography for enhanced user experience
- Smooth Animations: Engaging transitions and animations throughout the app
The app follows a clean architecture pattern with clear separation of concerns:
lib/
βββ consts/ # Constants and configuration
βββ controllers/ # Business logic controllers
βββ exceptions/ # Custom exceptions and error handling
βββ extensions/ # Dart extensions for utility functions
βββ interfaces/ # Abstract interfaces and contracts
βββ models/ # Data models and DTOs
βββ screens/ # UI screens and pages
βββ services/ # Business services (API, preferences, logging)
βββ utils/ # Utility functions
βββ widgets/ # Reusable UI components
- Modular Design: Separate subservices for different API endpoints
- Mock Implementation: Complete mock API for development and testing
- Dio Integration: HTTP client with interceptors for logging and error handling
- Error Handling: Comprehensive error handling with custom exceptions
- Token Management: Secure authentication token handling
- Local Preferences: Persistent storage for user preferences
- API Response Models: Strongly typed response models
- Authentication: Login, register, and token refresh functionality
- Book Data: Search, recommendations, and detailed book information
- Book Tracking: Reading progress and status management
- Library: Book list creation, management, and sharing
- User Management: Profile management and social features
- Feed: Activity feed for social interactions
- Flutter SDK (β₯3.5.4)
- Dart SDK
- Android Studio / VS Code
- Android SDK (for Android development)
- Xcode (for iOS development)
-
Clone the repository
git clone <repository-url> cd bookfinder_app
-
Install dependencies
flutter pub get
-
Run the app
flutter run
The app supports both mock and real API implementations:
- Mock API: Uses local mock data for development and testing
- Real API: Connects to a backend server (configurable base URL)
The app will prompt for API base URL on first launch if connecting to a real backend.
- π Home: Book recommendations and feed
- π Explore: Find new books based on your preferences
- π Library: Your book lists and tracked books
- π€ Profile: User profile and settings
- Authentication: Welcome, login, and registration
- Book Details: Comprehensive book information and actions
- Book Lists: View and manage book collections
- Tracked Books: Monitor reading progress
- Profile: User profiles with social features
- Search: Find books and users
- Flutter: Cross-platform mobile development framework
- Dart: Programming language
- Material Design: UI/UX design system
- dio: HTTP client for API requests
- shared_preferences: Local data persistence
- google_fonts: Custom typography
- cached_network_image: Efficient image loading and caching
- flutter_svg: SVG image support
- animations: Smooth page transitions
- talker: Comprehensive logging solution
- intl: Internationalization support
- Mock API: Complete mock backend for development
- Logging: Comprehensive logging with Talker
- Error Handling: Custom error handling and user feedback
- State Management: Stateful widgets with proper lifecycle management
- Clean Architecture: Separation of concerns with clear layers
- Interface-Based Design: Abstract interfaces for easy testing and mocking
- Extension Methods: Utility extensions for common operations
- Error Handling: Comprehensive error handling with user-friendly messages
- Mock API implementation allows for thorough testing without backend dependency
- Comprehensive error handling ensures robustness
- Type-safe models prevent runtime errors
- Custom Bottom Navigation: Intuitive navigation with custom icons
- Hero Animations: Smooth transitions between screens
- Responsive Layout: Adapts to different screen sizes
- Custom Components: Reusable UI components for consistency
- Pull-to-Refresh: Refresh data with intuitive gestures
- Loading States: Clear loading indicators
- Error States: Helpful error messages and retry options
- Empty States: Engaging empty state designs
This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ by Berk Akkaya.


