Skip to content

amitby98/Blooms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌸 Blooms

Blooms is a modern Android application designed to help users set, track, and share their personal goals. Built with Kotlin and following Android best practices, Blooms combines goal management with social features, allowing users to create structured goals with steps, share their progress with the community, and stay motivated.

✨ Features

🎯 Goal Management

  • Create Goals: Set up personal goals with custom titles, categories, and deadlines
  • Goal Steps: Break down goals into manageable steps for better tracking
  • Categories: Organize goals by different categories
  • Deadline Tracking: Set and monitor goal deadlines
  • Privacy Control: Choose whether to share goals publicly or keep them private

📱 Social Features

  • Share Posts: Create and share posts about your goal progress with images
  • Home Feed: Browse posts from other users in the community
  • User Profiles: View and manage your profile information
  • All My Posts: Access and edit all your shared posts in one place

🔐 Authentication

  • User Registration: Create a new account with email and password
  • Secure Login: Firebase Authentication for secure user management
  • User Profiles: Personalized user profiles with images

🎨 User Experience

  • Modern UI: Clean, Material Design-based interface
  • Image Support: Capture or select images for posts and profiles
  • Offline Support: Local data storage using Room Database
  • Inspirational Quotes: Daily motivational quotes in settings
  • Smooth Navigation: Intuitive navigation using Android Navigation Component

🛠️ Tech Stack

Core Technologies

  • Language: Kotlin
  • Minimum SDK: 29 (Android 10)
  • Target SDK: 35 (Android 15)
  • Architecture: MVVM (Model-View-ViewModel)

Libraries & Frameworks

  • Firebase
    • Firebase Authentication
    • Cloud Firestore
    • Realtime Database
  • Android Jetpack
    • Room Database (local storage)
    • Navigation Component
    • ViewModel & LiveData
    • Fragment
  • Networking
    • Retrofit 2.9.0
    • Gson 2.9.0
  • Image Loading
    • Picasso 2.8
  • UI Components
    • Material Design Components
    • Lottie Animations
    • Circle Progress View
  • Coroutines: Kotlin Coroutines for asynchronous operations

📁 Project Structure

app/src/main/java/com/example/blooms/
├── auth/                    # Authentication module
│   ├── authFragments/      # Login, Register, HomePage fragments
│   ├── authRepository/     # Authentication data layer
│   └── authViewModel/      # Authentication business logic
├── mainApp/                 # Main application features
│   ├── home/               # Home feed with all posts
│   ├── addNewGoal/         # Goal creation functionality
│   ├── allMyGoal/          # User's goals management
│   ├── profile/            # User profile
│   └── settings/           # App settings and quotes
├── addNewPost/             # Post creation module
├── allMyPosts/             # User's posts management
├── model/                  # Data models and Room database
│   ├── dao/                # Room DAOs
│   └── [Data Models]       # Goal, Post, User, etc.
└── general/                # Utility classes and helpers

🚀 Getting Started

Prerequisites

  • Android Studio Hedgehog or later
  • JDK 11 or higher
  • Android SDK 29+
  • Firebase project with Authentication, Firestore, and Realtime Database enabled

Installation

  1. Clone the repository

    git clone <repository-url>
    cd Blooms
  2. Set up Firebase

    • Create a Firebase project at Firebase Console
    • Enable Authentication (Email/Password)
    • Enable Cloud Firestore
    • Enable Realtime Database
    • Download google-services.json and place it in app/ directory
  3. Configure the project

    • Open the project in Android Studio
    • Sync Gradle files
    • Build the project
  4. Run the app

    • Connect an Android device or start an emulator (API 29+)
    • Click Run or use ./gradlew installDebug

📱 Usage

  1. Sign Up/Login: Create an account or log in with existing credentials
  2. Create a Goal: Navigate to "Add New Goal" and set up your goal with steps
  3. Share Progress: Create posts about your goal progress with images
  4. Explore Feed: Browse the home feed to see posts from other users
  5. Manage Goals: View and edit all your goals and posts in dedicated sections

🏗️ Architecture

Blooms follows the MVVM (Model-View-ViewModel) architecture pattern:

  • Model: Data models and repositories handling data operations
  • View: Activities and Fragments for UI
  • ViewModel: Business logic and state management
  • Repository: Data source abstraction (Firebase, Room, API)

Data Flow

  1. User interacts with UI (Fragment/Activity)
  2. ViewModel processes the action
  3. Repository fetches/updates data from Firebase or Room
  4. LiveData notifies ViewModel of changes
  5. UI updates automatically via data binding

🔒 Permissions

The app requires the following permissions:

  • INTERNET: For network requests and Firebase services
  • CAMERA: For capturing images for posts and profiles (optional)

📄 License

This project is private and proprietary.

👨‍💻 Development

Building

./gradlew build

Running Tests

./gradlew test
./gradlew connectedAndroidTest

Code Style

  • Follow Kotlin coding conventions
  • Use meaningful variable and function names
  • Add comments for complex logic

🤝 Contributing

This is a private project. For contributions or questions, please contact the project maintainer.

📞 Support

For issues, questions, or feature requests, please open an issue in the repository.


Made with ❤️ using Kotlin and Android Jetpack

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages