Skill Share is a platform where individuals can find others within their region who possess skills they seek. They can propose to exchange skills with these individuals. If they do not have a skill to offer in return, they can transfer tokens from their account to the other person as compensation. The platform also includes a review system to ensure trust and quality interactions.
- Language: Python (FastAPI)
- Database: PostgreSQL
- ORM: SQLAlchemy
- Migrations: Alembic
- Skill exchange between individuals
- Token-based transactions for skill-sharing
- Geolocation-based matching
- Review and rating system
- Secure authentication and authorization
- CRUD operations for user profiles, skills, and transactions
app/
├── config/ # Configuration files
├── core/
│ ├── admin/ # Admin panel functionality
│ ├── auth/ # Authentication and authorization
│ ├── notification/ # Notification system
│ ├── reviews/ # User reviews and ratings
│ ├── skill_share/ # Skill exchange logic
│ ├── skills/ # Skill management
│ ├── users/ # User management
├── utils/ # Utility functions
│ ├── crud/ # CRUD operations
│ ├── logger/ # Logging utilities
│ ├── types_utils/ # Data type utilities
│ ├── password_hash.py # Password hashing utility
│ ├── my_jwt.py # JWT authentication handler
│ ├── query.py # Query helpers
│ ├── response_message.py # Standard response messages
│ ├── uuid_generator.py # UUID generation for unique IDs
├── versions/ # Alembic migrations
├── alembic/ # Database migrations and versions
├── main.py # FastAPI entry point
├── requirements.txt # Dependencies
├── README.md # Documentation
- Clone the repository
git clone https://github.com/preciousekenenkwor/skill_share-m.git cd skill-share-m - Create a virtual environment and install dependencies
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate` pip install -r requirements.txt
- Set up environment variables
Create a
.envfile and configure it with the required settings:DATABASE_URL=postgresql://user:password@localhost/skillshare SECRET_KEY=your_secret_key ALGORITHM=HS256 ACCESS_TOKEN_EXPIRE_MINUTES=30
- Run database migrations
alembic upgrade head
- Start the FastAPI server
uvicorn main:app --reload
POST /auth/signup- Register a new userPOST /auth/login- Authenticate a userPOST /auth/refresh- Refresh authentication token
GET /users/- Get all usersGET /users/{id}- Get a specific userPUT /users/{id}- Update user profileDELETE /users/{id}- Delete user account
POST /skills/- Add a new skillGET /skills/- Get all skillsDELETE /skills/{id}- Remove a skill
POST /skill_share/propose- Propose a skill exchangePOST /skill_share/accept/{id}- Accept an exchangePOST /skill_share/reject/{id}- Reject an exchangePOST /skill_share/complete/{id}- Mark exchange as complete
POST /reviews/- Submit a reviewGET /reviews/{user_id}- Get reviews for a user
- Fork the repository
- Create a new branch (
feature-branch) - Commit your changes
- Push to the branch
- Open a Pull Request
This project is licensed under the MIT License.
For inquiries, reach out via email: `` or open an issue on GitHub.