Skip to content

Abs-Futy7/VolunSphere

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

50 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Volunsphere Logo

Volunsphere 🌟

A comprehensive volunteer management platform that connects volunteers with meaningful opportunities and helps organizations manage their volunteer programs effectively.

πŸ“‘ Table of Contents

Expand Table of Contents

πŸ“± Project Overview

Volunsphere is a full-stack application consisting of:

  • Frontend: Flutter mobile application with cross-platform support
  • Backend: FastAPI REST API with modern Python stack
  • Database: PostgreSQL with Redis for caching
  • Storage: Supabase for file storage and additional services
  • Push Notifications: Firebase Cloud Messaging (FCM) for real-time alerts

🎯 Key App Screens

Sign In
πŸ” Sign In
Secure authentication with remember me option
Home Dashboard
🏠 Home Dashboard
Volunteer statistics and opportunities
Events
πŸ“… Events
Browse and manage volunteer events
Leaderboard
οΏ½ Leaderboard
Track volunteer hours and achievements
AI Agent
πŸ€– AI Agent
Interact with AI for event insights
Profile
πŸ‘€ Profile
User profile management, stats, achievements
Community
🌐 Community
Social newsfeed for engagement and updates
Event Details
πŸ“ Event Details
Detailed event info and actions
Chat
πŸ’¬ Chat
Real-time messaging for events
Navigation
πŸ“± Navigation
Elegant side drawer, purple theme, animations

✨ Features

πŸ‘€ For Volunteers

  • πŸ” Secure Authentication – JWT-based login/signup, guest mode
  • πŸ“… Event Management – Browse, join, and track volunteer events
  • πŸ’¬ Real-Time Chat – Communicate with volunteers and organizers
  • πŸ‘€ Profile Management – Customize profiles, image upload
  • πŸ† Leaderboard – Rank volunteers by achievements
  • 🌐 Community Feed – Create posts, like, comment, engage
  • 🎨 Modern UI – Purple-themed, smooth animations
  • πŸ“„ Certification – Download certificates after volunteering
  • πŸ€– AI Agent – Get event and volunteer insights via AI

🏒 For Organizations

  • πŸ—“οΈ Event Creation – Organize/manage events, location mapping
  • πŸ‘₯ Volunteer Management – Track registrations, attendance
  • 🌐 Community Feed – Share updates/posts with volunteers
  • πŸ“Š Analytics – Monitor engagement, event performance
  • ⭐ Rating System – Rate volunteers after events

βš™οΈ Technical Features

  • 🎨 Modern Theme – Purple gradient, glassmorphism effects
  • βœ‰οΈ Email Integration – OTP verification for password changes
  • πŸ“ PDF Generation – Create volunteer certificates
  • πŸ”„ Real-Time Updates – WebSocket live chat & sync
  • πŸ–ΌοΈ Image Handling – Upload, crop profile/event photos
  • πŸ—ΊοΈ Interactive Maps – Google Maps for location selection
  • πŸ” Advanced Search – Search events and volunteers
  • πŸ€– AI Agent – Automated chat service
  • ⏰ Automated Logout – Redirect to login on session expiry
  • πŸ’Ύ Saved Credentials – Device remembers login for a period
  • πŸ”” Push Notifications – Via Firebase Cloud Messaging

πŸ—‚οΈ Sample API File (Flutter)

Below is a sample lib/utils/api.dart file for configuring API endpoints in your Flutter app. Replace the placeholder URL with your actual backend URL:

// utils/api.dart

const String baseUrl = "https://your-backend-url/api/v1"; // <-- Replace with your backend URL

const String authUrl = "$baseUrl/auth";
const String eventUrl = "$baseUrl/events";
const String userUrl = "$baseUrl/users";
const String chatUrl = "wss://your-backend-url/api/v1/chat"; // <-- Replace with your backend WebSocket URL
const String communityUrl = "$baseUrl/community";
const String leaderboardUrl = "$baseUrl/leaderboard";

Frontend (Flutter)

dependencies:
  flutter: ^3.7.2
  http: ^1.1.0
  shared_preferences: ^2.2.2
  google_maps_flutter: ^2.5.0
  geolocator: ^10.1.0
  geocoding: ^2.1.1
  image_picker: ^1.0.4
  image_cropper: ^5.0.1
  cached_network_image: ^3.3.0
  url_launcher: ^6.2.1
  intl: ^0.18.1
  lottie: ^2.7.0
  web_socket_channel: ^2.4.0
  provider: ^6.1.1
  firebase_core: ^2.24.2
  firebase_messaging: ^14.7.10

Backend (FastAPI)

# Core Framework
fastapi==0.104.1
uvicorn==0.24.0

# Database & ORM
sqlalchemy==2.0.23
alembic==1.12.1
psycopg2-binary==2.9.9
redis==5.0.1

# Authentication & Security
python-jose[cryptography]==3.3.0
passlib[bcrypt]==1.7.4
python-multipart==0.0.6

# External Services
supabase==2.0.2
requests==2.31.0

# Firebase Admin SDK for FCM
firebase-admin==6.2.0

# Email & Communication
smtplib (built-in)
email-validator==2.1.0

# Utilities
python-dotenv==1.0.0
pydantic==2.5.0

πŸ“‹ Prerequisites

System Requirements

  • Flutter SDK 3.7.2 or higher
  • Python 3.9 or higher
  • PostgreSQL 12 or higher
  • Redis server
  • Android Studio / VS Code for development
  • Google Maps API Key for location services
  • Firebase Project for push notifications
  • Supabase Account for additional services
  • GROQ API Access: Valid API key for GROQ (for chatbot integration)

Development Tools

  • Git version control
  • Postman/Fastapi Swagger Docs(for API testing)
  • Android/iOS emulators or physical devices

πŸš€ Installation & Setup

1. Clone the Repository

git clone https://github.com/your-username/Volunsphere.git
cd Volunsphere

2. Backend Setup

Navigate to backend directory

cd backend

Create and activate virtual environment

python -m venv env
# On Windows
env\Scripts\activate
# On macOS/Linux
source env/bin/activate

Install dependencies

pip install -r requirements.txt

Environment Configuration

Create a .env file in the backend directory:

# Database Configuration
DATABASE_URL=postgresql://username:password@localhost:5432/volunsphere

# JWT Configuration
JWT_SECRET_KEY=your-super-secret-jwt-key-here
JWT_ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30

# Redis Configuration
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=

# Email Configuration
GMAIL_USER=your-email@gmail.com
GMAIL_PASSWORD=your-app-password

# Supabase Configuration
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_KEY=your-supabase-service_role-key

# Google Maps API
GOOGLE_MAPS_API_KEY=your-google-maps-api-key

# GROQ API KEY
GROQ_API_KEY = your-GROQ-api-key

# Environment
ENVIRONMENT=development

# Firebase Credentials

FIREBASE_CREDENTIALS_JSON = your-firbase-project-credentials-as-string

Database Setup

# Create database
createdb volunsphere

# Run migrations
alembic upgrade head

Start the backend server

uvicorn src.main:app --reload --host 0.0.0.0 --port 8080

3. Frontend Setup

Navigate to frontend directory

cd frontend

Install Flutter dependencies

flutter pub get

Configure API endpoints

Create lib/utils/api.dart:

Firebase Configuration

  1. Create a Firebase project
  2. Add Android/iOS apps to your Firebase project
  3. Download google-services.json (Android) and GoogleService-Info.plist (iOS)
  4. Place them in the appropriate directories
  5. Configure Firebase in lib/main.dart

Run the Flutter app

# For development
flutter run

# For specific platforms
flutter run -d chrome      # Web
flutter run -d android     # Android
flutter run -d ios         # iOS

οΏ½ Download APK

You can download the latest Volunsphere Android APK from the following Google Drive link:

πŸ‘‰ Download Volunsphere APK

  • βœ… Android - Full support with native features
  • βœ… iOS - Full support with native features
  • βœ… Web - Full support with responsive design

πŸ—οΈ Project Architecture

Backend Architecture

backend/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ auth/              # Authentication & authorization
β”‚   β”‚   β”œβ”€β”€ routes.py      # Auth endpoints
β”‚   β”‚   β”œβ”€β”€ models.py      # User models
β”‚   β”‚   └── utils.py       # JWT utilities
β”‚   β”œβ”€β”€ events/            # Event management
β”‚   β”‚   β”œβ”€β”€ routes.py      # Event CRUD operations
β”‚   β”‚   β”œβ”€β”€ models.py      # Event models
β”‚   β”‚   └── services.py    # Business logic
β”‚   β”œβ”€β”€ community/         # Community features
β”‚   β”‚   β”œβ”€β”€ routes.py      # Posts & comments
β”‚   β”‚   └── models.py      # Community models
β”‚   β”œβ”€β”€ chat/              # Real-time chat
β”‚   β”‚   β”œβ”€β”€ websocket.py   # WebSocket handlers
β”‚   β”‚   └── models.py      # Chat models
β”‚   β”œβ”€β”€ leaderboard/       # User rankings
β”‚   β”œβ”€β”€ notifications/     # Push notifications
β”‚   β”œβ”€β”€ db/               # Database configuration
β”‚   β”‚   β”œβ”€β”€ database.py   # DB connection
β”‚   β”‚   └── base.py       # Base models
β”‚   └── main.py           # FastAPI app initialization
β”œβ”€β”€ migrations/           # Alembic migrations
|
└── requirements.txt     # Python dependencies

Frontend Architecture

frontend/
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ main.dart                    # App entry point
β”‚   |
β”‚   β”œβ”€β”€ models/                      # Data models
β”‚   β”‚   β”œβ”€β”€ user_model.dart
β”‚   β”‚   β”œβ”€β”€ event_model.dart
β”‚   β”‚   └── post_model.dart
β”‚   β”œβ”€β”€ services/                    # API services
β”‚   β”‚   β”œβ”€β”€ auth_service.dart
β”‚   β”‚   β”œβ”€β”€ events_service.dart
β”‚   β”‚   β”œβ”€β”€ community_service.dart
β”‚   β”‚   └── chat_service.dart
β”‚   β”œβ”€β”€ screens/                     # UI screens
β”‚   β”‚   β”œβ”€β”€ auth/                    # Authentication screens
β”‚   β”‚   β”œβ”€β”€ events/                  # Event-related screens
β”‚   β”‚   β”œβ”€β”€ community/               # Community features
β”‚   β”‚   β”œβ”€β”€ profile/                 # User profile
β”‚   β”‚   └── settings/                # App settings
β”‚   β”œβ”€β”€ widgets/                     # Reusable widgets
β”‚   β”œβ”€β”€ utils/                       # Utility functions
β”‚   └── constants/                   # App constants
β”œβ”€β”€ assets/                          # Static assets
β”‚   β”œβ”€β”€ images/                      # App images & logos
β”‚   β”œβ”€β”€ animations/                  # Lottie animations
β”‚   └── fonts/                       # Custom fonts
β”œβ”€β”€ android/                         # Android configuration
β”œβ”€β”€ ios/                            # iOS configuration
β”œβ”€β”€ web/                            # Web configuration
└── pubspec.yaml                    # Flutter dependencies

πŸ”§ Development

Backend Development

  • API Documentation: Available at http://localhost:8080/docs (Swagger UI)
  • Database Migrations:
    alembic revision --autogenerate -m "description"
    alembic upgrade head

Frontend Development

  • Hot Reload: Enabled automatically in development mode
  • Build for Development:
    flutter run
  • Build for Production:
    flutter build apk --release           # Android APK
    flutter build ios --release           # iOS
    flutter build web --release           # Web

πŸ›‘οΈ Security Features

  • JWT Authentication with refresh tokens
  • Password Hashing using bcrypt
  • Input Validation with Pydantic
  • CORS Configuration for web security
  • SQL Injection Protection via SQLAlchemy ORM
  • File Upload Validation for images
  • Environment Variables for sensitive data

πŸ“Š Performance Optimizations

  • Database Indexing on frequently queried fields
  • Redis Caching for session management
  • Image Compression and lazy loading
  • API Response Pagination
  • WebSocket Connection Pooling
  • Flutter Widget Optimization
  • Code Splitting for web builds

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes following our coding standards
  4. Write tests for new functionality
  5. Commit your changes: git commit -m 'Add amazing feature'
  6. Push to the branch: git push origin feature/amazing-feature
  7. Open a Pull Request

Coding Standards

  • Follow Flutter/Dart style guidelines
  • Follow PEP 8 for Python code
  • Write meaningful commit messages
  • Include tests for new features
  • Update documentation as needed
  • Use conventional commits format

πŸ‘₯ Contributors

πŸš€ Project Team

Mehedi Hasan
H.M. Mehedi Hasan
πŸ› πŸ’» πŸ“–
Full-Stack Developer
Abu Bakar
Abu Bakar Siddique
πŸ’» 🎨 πŸ“±
Frontend Developer
Ahil Islam
Ahil Islam Aurnob
πŸ’» πŸ—ƒοΈ ⚑
Backend Developer
Shamiun Ferdous
S M Shamiun Ferdous
πŸ’» πŸ§ͺ πŸ“Š
QA & Analytics

Contact Information

πŸ“„ License

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

πŸ†˜ Support & Documentation

Getting Help

Useful Links

🎯 Future Roadmap

  • Advanced Analytics Dashboard with charts and insights
  • Multi-language Support (Bengali, Spanish, French)
  • Offline Mode capabilities with data synchronization
  • Social Media Integration (Facebook, Twitter, LinkedIn)
  • Advanced Search with AI-powered recommendations
  • Gamification Features with badges and achievements
  • Event Categories and advanced filtering
  • Mobile App Widgets for quick actions

Made with ❀️ for the volunteer community

Empowering communities through technology and volunteering

⬆ Back to Top | πŸ“‘ Table of Contents

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 84.9%
  • Python 10.2%
  • C++ 2.4%
  • CMake 1.8%
  • Swift 0.3%
  • C 0.1%
  • Other 0.3%