GetMeBuddy is a social platform that helps users find buddies for various activities based on shared interests, location, and availability.
- User Authentication: Secure registration and login with email, social logins (Google, Apple, Facebook)
- Profile Management: Detailed user profiles with interests, availability, and preferences
- Matching Algorithm: Smart buddy matching based on interests, location, and schedule compatibility
- Real-time Messaging: WebSocket-powered chat system for matched buddies
- Engagement Features: Gamification elements to increase user retention
- Safety Measures: Reporting system and content moderation
- Premium Features: Monetization options through subscriptions or one-time payments
- Backend: Django/Python
- Database: PostgreSQL
- API: Django REST Framework
- Authentication: JWT + Firebase Auth
- Real-time Communication: Django Channels with WebSockets
- Dependency Management: Poetry
- Containerization: Docker
The project follows a modular structure with separate Django apps for different features:
users
: User authentication and managementprofiles
: User profile data and preferencesmatching
: Buddy matching algorithmmessaging
: Real-time chat systemengagement
: Gamification and user retention featuressafety
: Content moderation and reportingmonetization
: Premium features and payment processing
- Python 3.10+
- PostgreSQL 14+
- Redis (for WebSockets)
- Clone the repository
- Install dependencies with Poetry:
poetry install
- Set up environment variables (copy
.env.template
to.env
and update values) - Run migrations:
python manage.py migrate
- Create a superuser:
python manage.py createsuperuser
- Start the development server:
python manage.py runserver
For detailed setup instructions, see the Setup Guide.
API endpoints are documented using Django REST Framework's built-in documentation. After starting the server, visit:
http://localhost:8000/api/schema/swagger-ui/
Run tests with pytest:
pytest
For test coverage:
pytest --cov=.
The project includes Docker configuration for easy deployment:
docker-compose -f docker/docker-compose.yml up -d
For any questions or suggestions, please reach out to your-email@example.com.