Re-Serve is a mobile application that connects surplus, still-edible food from vendors with people who need affordable meals. By allowing businesses to offer excess menu items at discounted prices, Re-Serve helps reduce food waste while making quality food more accessible to the community. Designed to be as intuitive as mainstream food delivery platforms, the app promotes sustainable consumption and supports a more responsible food ecosystem.
- Authentication (login/register) with secure token storage
- Food exploration: list, search, detail
- Like foods and view liked foods later
- Ratings and reviews
- Cart management (add/update/remove)
- Checkout flow with payment method selection
- Account management (profile edit, transactions)
- Flutter (Dart)
- State management:
flutter_bloc - Networking:
dio - Secure storage:
flutter_secure_storage - Env config:
flutter_dotenv - Images:
cached_network_image - Formatting:
intl
lib/
core/
config/ # Env config
data/
models/ # DTOs and model mapping
services/ # API client + endpoints
repositories/ # Data access layer
presentation/
bloc/ # BLoC events, states, logic
screen/ # UI screens
widgets/ # Reusable UI components
flutter pub get
Create a .env file in the project root:
API_KEY=your_api_key
BASE_URL=https://api.example.com
These are loaded via EnvConfig in lib/core/config/env_config.dart.
flutter run
demo-v2.mp4
- Link to Pitch Deck: Canva Link
- The checkout flow intentionally uses a mock transaction response (API returns status only).
- Image loading uses caching with placeholders and error fallbacks.
This project is for educational purposes.