SkillSwap is a modern web platform built with Python + Flask that connects learners and mentors through skill-based teaching, course creation, and peer-to-peer exchanges. Whether you want to teach, learn, or do both, this platform offers a simple and interactive space to register, match, and enroll in courses.
- Simple sign-up and login system
- Session-based login using Flask sessions
- Users can add skills they can teach and skills they want to learn
- Based on this, the platform shows learning matches
- Users can engage in mutual skill exchange or choose to enroll in paid courses
- Users who have added a “teach” skill can create courses
- Courses can be free or paid
- Instructors define title, description, price, start date, and if they accept skill exchanges
-
Students can browse all available courses
-
Can enroll using a fake but realistic payment flow:
- Choose payment method (Visa, MasterCard, Google Pay, Paytm)
- Input dummy payment details depending on the selected method
-
Instructors cannot enroll in their own courses
-
Already enrolled users see a “You’re already enrolled” message
-
Guides new users on how the platform works:
- How to add skills
- How course creation works
- How skill exchange can waive payment
- How to enroll and see your dashboard
├── flask/
│ ├── templates/
│ │ ├── base.html
│ │ ├── home.html
│ │ ├── login.html
│ │ ├── signup.html
│ │ ├── dashboard.html
│ │ ├── create_course.html
│ │ ├── browse_courses.html
│ │ ├── enroll.html
│ │ └── help.html
│ ├── static/
│
├── models.py
├── matcher.py
├── app.py
└── mentorship.db (SQLite database)- Backend: Python 3, Flask
- Database: SQLite3
- Frontend: HTML5, CSS3 (with inline styles), Jinja2 templates
- Other: Bootstrap/Tailwind-ready layout, Sessions, Flash messages
-
Clone the repository:
git clone https://github.com/your-username/learning-hub.git cd learning-hub -
Set up a virtual environment:
python3 -m venv venv source venv/bin/activate # or venv\Scripts\activate on Windows
-
Install dependencies:
pip install Flask
-
Run the app:
python app.py
-
Open your browser and go to
http://localhost:5000
- Add profile images and bio for mentors
- Add chat or scheduling functionality
- Enable filtering or search in course browsing
- Admin panel for managing users and reports
- Email notifications for new matches or enrollments
A user named Samia signs up and adds “Python” as a teaching skill and “UI/UX” as a learning skill. Another user, Arjun, teaches UI/UX and wants to learn Python. They are matched on the dashboard. Samia also creates a course called “Intro to Python” that Arjun can enroll in either by paying or exchanging a skill.