Skip to content

Musta99/Kivaloop

Repository files navigation

☕ KivaLoop — Your Daily Coffee Companion

Flutter Dart Firebase Mapbox

KivaLoop is not just an app — it's your daily coffee companion. Connect, explore, spin, and sip your way through a community built around the love of coffee.


📱 Screenshots

Add your screenshots here


✨ Features

🔐 Authentication

  • Sign in with Email & Password
  • Sign in with Google
  • Secure session management

🏠 Home Feed

  • Browse coffee stories shared by the community
  • View photos, thoughts, and favorite moments
  • React and comment on posts
  • Stay connected with coffee lovers around you

🎡 Fortune Wheel

  • Spin the wheel daily for a chance to win points
  • Collect and redeem points for discounts and offers at your favorite cafés
  • Gamified rewards system to keep you coming back

🗺️ Coffee Shop Map

  • Search for nearby coffee shops using Mapbox
  • Explore new spots around your area
  • Plan your next café visit with ease

👤 User Profiles

  • View what others love to drink today
  • Explore users' favorite cafés
  • See earned and redeemed reward points

📝 Post Stories

  • Share your coffee vibe with the community
  • Upload photos and write about your coffee moments
  • Build your presence in the KivaLoop circle

🛠️ Tech Stack

Layer Technology
Framework Flutter
Language Dart
Authentication Firebase Auth
Database Firebase Firestore
Storage Firebase Storage
Maps & Search Mapbox GL
State Management Provider
Image Picker image_picker
HTTP http

🚀 Getting Started

Prerequisites


🔧 Installation

1. Clone the repository

git clone https://github.com/Musta99/Kivaloop.git
cd Kivaloop

2. Install dependencies

flutter pub get

3. Set up Firebase

  • Create a Firebase project at console.firebase.google.com
  • Add an Android and/or iOS app to your Firebase project
  • Download google-services.json and place it in android/app/
  • Run flutterfire configure if using FlutterFire CLI

4. Set up Mapbox Token

Add your Mapbox token to android/local.properties (this file is gitignored):

MAPBOX_TOKEN=your_mapbox_token_here

⚠️ Never hardcode your Mapbox token directly in source files. It is read securely from local.properties at build time.

5. Run the app

flutter run

📁 Project Structure

lib/
├── Features/
│   └── Screens/
│       ├── auth/               # Login & signup screens
│       ├── home/               # Home feed
│       ├── map_screen/         # Mapbox coffee shop map
│       ├── profile/            # User profiles
│       ├── fortune_wheel/      # Daily spin wheel
│       └── post/               # Create & view posts
├── State-Management/           # Provider state classes
│   └── AddPostState/
├── core/                       # Theme, constants, utilities
└── main.dart

🔐 Environment & Secrets

This project uses local.properties to keep secrets out of source control.

Secret Location
Mapbox Token android/local.propertiesMAPBOX_TOKEN
Firebase Config android/app/google-services.json

Make sure these files are listed in .gitignore:

android/local.properties
google-services.json

📦 Key Dependencies

dependencies:
  flutter:
    sdk: flutter
  firebase_core:
  firebase_auth:
  cloud_firestore:
  firebase_storage:
  google_sign_in:
  provider:
  image_picker:
  http:
  flutter_easyloading:
  mapbox_maps_flutter:
  geolocator:
  flutter_easyloading:
  image_picker:
  http:
  uuid:
  flutter_screenutil:
  geocoding:

📄 License

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


👨‍💻 Author

Musta99


"Every sip leads to a new connection, a new place, or a new reward."

About

KivaLoop is not just an app — it's your daily coffee companion.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors