Skip to content

Repository files navigation

Allogami

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.

Contents

Features

  • 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.

Tech Stack

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
Email Gmail SMTP

Quick Start

Pre-requisites

  • Python 3.11+
  • pip + optional virtualenv
  • Git

Installation

# 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.

Project Structure

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/

Documentation

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

Contributing

All valuable contributions are welcome. Please read CONTRIBUTING.md before submitting a pull request.

License

MIT License - see LICENSE for details.

About

SkillSwap is a community skills swapping web platform created using Django, HTML, CSS and JavaScript. Users can filter, send swap requests and schedule swap meetings.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages