Welcome to the StarkHive API – the backend service powering StarkHive, a decentralized Web3 job marketplace built on Starknet. This platform connects freelancers and recruiters through a LinkedIn-style feed and Upwork-style job interactions, tailored for the blockchain and developer community.
- 🔐 Auth (JWT, refresh tokens, RBAC)
- 🧑💻 Freelancer & Recruiter onboarding
- 💼 Job Posting and Applications
- 📰 Social Feed with likes, comments, and saves
- 🛡️ Admin tools for moderation
- 📬 Notifications
- 📁 Portfolios & Profiles
- 💬 Messaging (initial structure)
src/
├── auth/ → user registration, login, roles, profiles
├── jobs/ → job creation, applications, status
├── feed/ → posts, likes, comments, reports
├── notifications/ → user alerts, preferences
├── applications/ → job applications
├── messaging/ → direct messages
├── anti-spam/ → spam detection & flagging
├── reviews/ → freelancer reviews
git clone https://github.com/your-org/StarkHive_api.git
cd StarkHive_api
npm install
npm run start:dev- Copy
.env.exampleto.envand fill in your config. Add your.envto.gitignore. - Ensure PostgreSQL is running.
We're building this together. Here's how to contribute:
- Browse the open Issues.
- Choose an issue (look for ones without an assignee).
- Comment on the issue with:
Maintainers, I would like to work on this issue, with an estimated ETA. - Wait for assignment. (Please don't create PRs without assignment.)
- Fork the repo.
- Create a branch:
git checkout -b feat/your-feature-name - Code and make sure to test your changes.
- Submit a PR that includes
Close #ISSUE_NUMBERin the description.
- Always wait for a maintainer to assign the issue.
- Join our Telegram Group for questions, collabs, or help.
- ⭐ Star the repo if you find this project valuable.
MIT
Built with 💙 by the StarkHive community
The notification system supports in-app, email, and SMS delivery for critical events, with advanced user preferences and delivery tracking.
- Email notifications for critical events (via SMTP)
- SMS notifications for urgent alerts (via Twilio)
- In-app notifications for all users
- Rich templates for email/SMS/in-app (Handlebars-based)
- User preferences: per-channel, per-type, frequency
- Delivery status tracking for all channels
Add the following to your .env:
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_SECURE=false
SMTP_USER=your_smtp_user
SMTP_PASSWORD=your_smtp_password
SMTP_FROM=noreply@starkhive.com
TWILIO_ACCOUNT_SID=your_twilio_sid
TWILIO_AUTH_TOKEN=your_twilio_token
TWILIO_FROM=+1234567890
- Email/SMS templates are in
src/notifications/templates/(Handlebars format) - Add or modify templates as needed for new notification types
- Users can set preferences for each notification type (application, reviews, posts, tasks)
- Preferences include channel (in-app, email, SMS) and frequency (immediate, daily, etc.)
- All notification deliveries are tracked in the database with status (sent, failed, delivered, read)
- Unit tests:
src/notifications/notifications.service.spec.ts - E2E tests:
test/notifications.e2e-spec.ts - Run all tests:
npm run test npm run test:e2e