Backend services for the SkillSync platform
SkillSync_Server provides off-chain services that support the SkillSync ecosystem.
It handles indexing, user metadata, analytics, notifications, and integrations that are not suitable for on-chain execution.
The backend works alongside the Stellar network without custody of user funds.
- User metadata management
- Mentorship session records
- Event indexing from Stellar
- Notifications & emails
- Email verification and password reset
- API layer for frontend
- Node.js
- NestJS
- TypeScript
- PostgreSQL
- Stellar Horizon API
- Node.js ≥ 18
- Database (PostgreSQL)
- Environment variables configured
- Clone the repository:
git clone https://github.com/MentoNest/SkillSync_Server.git
cd SkillSync_Server- Install dependencies:
npm install
# or using yarn
yarn install- Set up environment variables:
cp .env.example .env
# Edit .env with your configuration detailsEnvironment Variables:
RATE_LIMIT_WINDOW_MS: The time window in milliseconds for rate limiting (default: 60000ms / 1 minute).RATE_LIMIT_MAX: The maximum number of requests allowed per IP within theRATE_LIMIT_WINDOW_MS(default: 100).CORS_ORIGINS: A comma-separated list of allowed origins for CORS. Use*for all origins (default:*).
- Set up the database:
npm run migration:run
# or using yarn
yarn migration:run- Start the development server:
npm run start:dev
# or using yarn
yarn start:dev- Create an account and complete your profile
- Browse available mentors based on your interests
- Request mentorship sessions with preferred mentors
- Attend sessions, provide feedback, and track your progress
- Create an account and build your mentor profile
- Set your availability, hourly rates, and expertise areas
- Accept mentorship requests
- Conduct sessions and provide guidance
- Receive payments and feedback
Access the admin dashboard at /admin with appropriate credentials to:
- Manage users
- Monitor platform activity
- Generate reports
- Configure system settings
src/
├── modules/
├── controllers/
├── services/
├── entities/
├── guards/
└── main.ts
We welcome contributions from the community! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name
- Commit your changes:
git commit -m 'Add some feature' - Push to the branch:
git push origin feature/your-feature-name
- Open a pull request
This project enforces consistent API behavior via:
- Global validation pipe (DTO validation)
- Global exception filter (standard error schema)
- Logging interceptor (structured request logs)
- Security Middleware: Helmet for secure HTTP headers, dynamic CORS configuration, and rate limiting to protect against excessive traffic.
These utilities are applied at application bootstrap.
Please read our Contributing Guide for more details.
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ by the Mentorship Marketplace Team