Connect with your soul tribe - meaningful conversations and community building.
SoulTribe is a web platform that brings people together for authentic conversations and meaningful connections. Using intelligent matching algorithms, the platform helps users find compatible conversation partners and build lasting relationships.
- Smart Matching: Intelligent algorithm to connect compatible users
- Real-time Chat: Secure messaging between matched users
- Profile Management: Comprehensive user profiles with interests and preferences
- Availability Scheduling: Easy time slot management for conversations
- Multi-language Support: Internationalization with i18next
- Admin Dashboard: Comprehensive administration tools
- Email Notifications: Verification and communication emails
- Mobile Responsive: Works seamlessly on all devices
- Python 3.8+
- Node.js 16+
- PostgreSQL
- Redis (optional, for caching)
-
Clone the repository
git clone https://github.com/yourusername/soultribe.git cd soultribe -
Set up Python environment
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate pip install -r requirements.txt
-
Install Node.js dependencies
npm install
-
Configure environment
cp .env.example .env # Edit .env with your database URL and other settings -
Set up database
alembic upgrade head
-
Build frontend assets
npm run build
-
Start the application
./run_app.sh
Visit http://localhost:8000 to access the application.
Check out the live site at soultribe.chat
soultribe/
βββ src/
β βββ backend/ # Python FastAPI backend
β βββ frontend/ # JavaScript, CSS, and static files
β βββ public/ # Public HTML pages
βββ docs/ # Documentation
βββ dev/ # Development scripts and tools
βββ alembic/ # Database migrations
npm run build- Build frontend assets./run_app.sh- Start development serveralembic revision --autogenerate -m "description"- Create migrationalembic upgrade head- Apply migrations
The project uses Alembic for database migrations:
# Create new migration
alembic revision --autogenerate -m "Add new feature"
# Apply migrations
alembic upgrade head
# Rollback migration
alembic downgrade -1- User Seeding:
dev/scripts/seed_dev.py- Create test users - Translation Management:
dev/translations/- Update translations - Debug Scripts:
dev/scripts/debug_match_find.py- Debug matching algorithm
Key environment variables in .env:
DATABASE_URL=postgresql://user:password@localhost/soultribe
SECRET_KEY=your-secret-key
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=your-email@gmail.com
EMAIL_PASSWORD=your-app-passwordThe application uses PostgreSQL with SQLModel for ORM. Database schema is managed through Alembic migrations.
- Backend: Python, FastAPI, SQLModel, Alembic
- Frontend: Vanilla JavaScript, HTML5, CSS3, i18next
- Database: PostgreSQL
- Authentication: JWT tokens
- Email: SMTP integration
- Deployment: Gunicorn, systemd
Once running, visit http://localhost:8000/docs for interactive API documentation (Swagger UI).
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Python: Follow PEP 8
- JavaScript: Use ES6+ features
- CSS: Use BEM methodology for class names
- Commit messages: Use conventional commits
- JWT-based authentication
- Password hashing with Argon2
- Input validation and sanitization
- CSRF protection
- Environment-based configuration
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue on GitHub
- Check the documentation
- Review the admin guide
- Thanks to all contributors who help make SoulTribe better
- Special thanks to the open-source community for the tools and libraries that make this project possible