🎶 "Music is the universal language of mankind" - Henry Wadsworth Longfellow
Alma is not just another social platform – it's your gateway to meaningful connections through the universal language of music. By analyzing your Spotify listening patterns, Alma finds your musical soulmates and creates connections that resonate with your soul.
- 🎨 Authentic Connections - Connect based on genuine musical taste, not curated profiles
- 🔒 Privacy First - Your data is yours. Share only what you want, when you want
- 🤖 Smart Matching - AI-powered algorithms that understand music like you do
- ⚡ Real-time Experience - Live music sharing and synchronized listening experiences
🔑 Spotify Integration
- 🔐 Secure OAuth2 authentication
- 🔄 Real-time music data sync
- 📊 Deep musical taste analysis
🤝 Smart Connection System
- 🧠 AI-powered compatibility matching
- 🛡️ Privacy-focused social features
- 🎭 Progressive profile reveal
🎧 Mood Rooms
- 🎵 Real-time music sharing spaces
- 🔄 Live track synchronization
- 👥 Shared listening experiences
📊 Music Analysis
- 🎯 Genre preference matching
- 🎸 Artist overlap detection
- 📈 Listening pattern analysis
- 💫 Music soul level calculation
Before you begin, ensure you have:
- 🐍 Python 3.9+
- 🐘 PostgreSQL
- 📦 Redis
- 🎵 Spotify Developer Account
1️⃣ Clone & Navigate
git clone [repository-url]
cd alma
2️⃣ Set Up Virtual Environment
python -m venv venv
source venv/bin/activate # 🪟 Windows: venv\Scripts\activate
3️⃣ Install Dependencies
pip install -r requirements.txt
4️⃣ Configure Environment
cp .env.example .env
# ✏️ Edit .env with your settings
5️⃣ Initialize Database
alembic upgrade head
Quick Start:
bash run.sh
Manual Start:
uvicorn main:app --reload --port 8000
alma/
├── 📱 app/ # Application core
│ ├── 🔑 auth/ # Authentication
│ ├── 🤝 connections/ # User connections
│ ├── 💾 database/ # Database layer
│ ├── 📊 models/ # Data models
│ ├── 🎵 music/ # Music analysis
│ ├── 📝 playlists/ # Playlist management
│ └── 🔌 websockets/ # Real-time features
├── 🧪 tests/ # Test suite
├── 📦 alembic/ # Database migrations
└── 📄 requirements.txt # Dependencies
Run All Tests:
pytest # 🧪 All tests
pytest --cov=app # 📊 With coverage
Specific Test Categories:
pytest tests/auth/ # 🔑 Auth tests
pytest tests/models/ # 📊 Model tests
pytest -m unit # 🎯 Unit tests
Once running, explore the API at:
- 🔍 Swagger UI:
http://localhost:8000/docs
- 📖 ReDoc:
http://localhost:8000/redoc
We love your input! Check out our Contributing Guidelines for ways to contribute.
- 🍴 Fork the repo
- 🌿 Create your feature branch (
git checkout -b feature/AmazingFeature
) - 💾 Commit changes (
git commit -m 'Add AmazingFeature'
) - 📤 Push to branch (
git push origin feature/AmazingFeature
) - 🎁 Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- 🎵 Spotify Web API
- 🚀 FastAPI Framework
- 💾 SQLAlchemy ORM
- 🔄 Redis
Made with ❤️ by the Alma Team