A full-stack application for skill exchange and peer learning.
├── Skill-Loop/ # Backend (FastAPI + Python)
│ ├── app/
│ │ ├── api/ # API routes
│ │ ├── core/ # Security & config
│ │ ├── db/ # Database setup
│ │ ├── models/ # SQLAlchemy models
│ │ └── schemas/ # Pydantic schemas
│ └── main.py
│
└── SkillLoop/ # Frontend (React + TypeScript + Vite)
└── src/
├── components/ # React components
├── contexts/ # Auth context
├── hooks/ # Custom hooks (API)
└── lib/ # API client
- Create virtual environment:
cd Skill-Loop
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Configure environment:
cp .env.example .env
# Edit .env with your Auth0 and database credentials- Run database migrations:
alembic upgrade head- Start the server:
python main.py
# Or: uvicorn main:app --reloadBackend runs at: http://localhost:8000 API docs at: http://localhost:8000/docs
- Install dependencies:
cd SkillLoop
npm install- Configure environment:
cp .env.example .env
# Edit .env if needed (default API URL is http://localhost:8000)- Start development server:
npm run devFrontend runs at: http://localhost:5173
The app uses Auth0 for authentication. Configure your Auth0 application:
- Create an Auth0 application (Regular Web Application)
- Set callback URL:
http://localhost:8000/api/auth/callback - Set logout URL:
http://localhost:5173 - Copy credentials to backend
.env
For development/demo, the frontend includes a demo login that bypasses Auth0.
POST /api/auth/login- Initiate Auth0 loginGET /api/auth/callback- Auth0 callbackGET /api/users/me- Get current userPUT /api/users/me- Update profileGET /api/skills- Get user's skillsPOST /api/skills- Add a skillGET /api/matches- Get matchesGET /api/matches/find- Find potential matchesPOST /api/matches/{id}/accept- Accept matchGET /api/sessions- Get sessionsPOST /api/sessions- Create sessionPOST /api/sessions/{id}/complete- Complete sessionPOST /api/sessions/{id}/rate- Rate sessionGET /api/credits/balance- Get credit balanceGET /api/credits/history- Get credit history
- Smart Matching: Find users with complementary skills
- Session Management: Schedule, complete, and rate sessions
- Credit System: Earn credits by teaching, spend by learning
- Skill Profiles: Manage teaching and learning skills
- Real-time Updates: React Query for data synchronization