A comprehensive volunteer management platform that connects volunteers with meaningful opportunities and helps organizations manage their volunteer programs effectively.
Expand Table of Contents
- π± Project Overview
- π― Key App Screens
- β¨ Features
- ποΈ Sample API File (Flutter)
- π Prerequisites
- π Installation & Setup
- π¦ Download APK
- ποΈ Project Architecture
- π§ Development
- π‘οΈ Security Features
- π Performance Optimizations
- π€ Contributing
- π₯ Contributors
- π License
- π Support & Documentation
- π― Future Roadmap
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
- π 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
- ποΈ 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
- π¨ 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
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";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# 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
- 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)
- Git version control
- Postman/Fastapi Swagger Docs(for API testing)
- Android/iOS emulators or physical devices
git clone https://github.com/your-username/Volunsphere.git
cd Volunspherecd backendpython -m venv env
# On Windows
env\Scripts\activate
# On macOS/Linux
source env/bin/activatepip install -r requirements.txtCreate 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# Create database
createdb volunsphere
# Run migrations
alembic upgrade head
uvicorn src.main:app --reload --host 0.0.0.0 --port 8080cd frontendflutter pub getCreate lib/utils/api.dart:
- Create a Firebase project
- Add Android/iOS apps to your Firebase project
- Download
google-services.json(Android) andGoogleService-Info.plist(iOS) - Place them in the appropriate directories
- Configure Firebase in
lib/main.dart
# For development
flutter run
# For specific platforms
flutter run -d chrome # Web
flutter run -d android # Android
flutter run -d ios # iOSYou can download the latest Volunsphere Android APK from the following Google Drive link:
- β Android - Full support with native features
- β iOS - Full support with native features
- β Web - Full support with responsive design
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/
βββ 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
- API Documentation: Available at
http://localhost:8080/docs(Swagger UI) - Database Migrations:
alembic revision --autogenerate -m "description" alembic upgrade head
- 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
- 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
- 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
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes following our coding standards
- Write tests for new functionality
- Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- 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
H.M. Mehedi Hasan π π» π Full-Stack Developer |
Abu Bakar Siddique π» π¨ π± Frontend Developer |
Ahil Islam Aurnob π» ποΈ β‘ Backend Developer |
S M Shamiun Ferdous π» π§ͺ π QA & Analytics |
- H.M. Mehedi Hasan: hasanmehedi26696@gmail.com
- Abu Bakar Siddique: bojackabs@gmail.com
- Ahil Islam Aurnob: aheelislam03@gmail.com
- S M Shamiun Ferdous: shamiunferdous1234@gmail.com
This project is licensed under the MIT License - see the LICENSE file for details.
- π§ Email Support: contact@volunsphere.com
- 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














