Allogami is a community-driven web platform that enables peer-to-peer skill exchange without monetary transactions. Users list skills they can teach and skills they want to learn, connect with matching users, and arrange skill swap sessions.
- Authentication - Email/password registration with email verification, Google OAuth login.
- Skill Management - List, browse, search and filter skills by category, type and proficiency.
- Swap Requests - Send, accept, deny and cancel skill swap requests.
- Session Scheduling - Schedule sessions with date, duration and meeting link.
- Reviews and Ratings - Leave reviews after completed sessions, automated rating calculation.
- Messaging - Direct messaging between users, with unread messages count.
- Notifications - Real-time notifications for swap requests and messages.
- Public Profiles - View any user's skills, ratings and reviews.
| Layer | Technology |
|---|---|
| Backend | Django 6.x (Python 3.13) |
| Database | PostgreSQL (production) |
| Auth | Django Auth + django-allauth (Google OAuth) |
| Frontend | Django Templates + Bootstrap 5 + Custom CSS |
| Static Files | Whitenoise |
| Web Server | Gunicorn |
| Deployment | Railway |
| Gmail SMTP |
- Python 3.11+
- pip + optional virtualenv
- Git
# 1. Clone the repository
git clone https://github.com/WereAM/skillswap.git
cd skillswap
# 2. Create and activate virtual environment
python -m venv venvname
venvename\Scripts\activate # Windows
source venvname/bin/activate # Mac/Linux
# 3. Install dependencies
pip install -r requirements.txt
# 4. Set up environment variables
cp .env.example .env
# Edit .env with the right values
# 5. Run migrations
python manage.py migrate
# 6. Seed the database
python populate.py
# 7. Create superuser
python manage.py createsuperuser
# 8. Run development server
python manage.py runserver
Visit https://127.0.0.1:8000 to see the app.
skillswap/
|—— manage.py
|—— populate.py
|—— requirements.txt
|—— Procfile
|—— runtime.txt
|—— .env
|—— .env.example
|
|——skillswap/
| |—— settings.py
| |—— urls.py
│ └── wsgi.py
|
|—— accounts/
|—— messaging/
|—— skills/
|—— swaps/
|
|——templates/
| |—— accounts/
| |—— messaging/
| |—— skills/
| |—— swaps/
| |—— base.html
| └── home.html
|
|—— static/
| |—— css
| └── main.css
|
└── docs/
| Document | Description |
|---|---|
| Architecture Overview | System design and architecture |
| Database Schema | Models and relationships |
| API Reference | URL endpoints |
| Local Setup | Development environment setup |
| Deployment Guide | Production deployment |
| Environment Variables | All environment variables |
| Contributing Guide | How to contribute |
| Changelog | Version history |
| Roadmap | Planned features |
All valuable contributions are welcome. Please read CONTRIBUTING.md before submitting a pull request.
MIT License - see LICENSE for details.