Free-Gency is a platform that connects clients with freelance teams, providing an integrated environment for collaboration and management of creative and technical projects. The platform allows clients to discover opportunities and contract with specialized teams in various fields such as design, development, marketing, and IT services.
The project is deployed using Koyeb at the following link: π https://free-gency-api-v1.onrender.com
π https://free-gency-api-v1.onrender.com
You can test the API using Postman Workspace:
π Postman Workspace
β Secure Authentication System: Login, registration, email verification, password recovery β User Management: Clients, team leaders, team members β Team Management: Create, manage, and join teams β Project Management: Create, track, and manage projects β Service Categories: Creative design, development & programming, advertising & marketing, IT services β Profile Management: Update profiles, skills, and portfolio β Reviews & Ratings: Rating system for teams and projects
- π’ Node.js
- β‘ Express.js
- π MongoDB
- π΄ Mongoose
- π JWT (JSON Web Tokens)
- π bcrypt
- π¨ Nodemailer
- β Validator.js
- π‘οΈ Express Validator
- π΄ Postman (API Testing)
- βοΈ Koyeb (Hosting Service)
git clone https://github.com/yourusername/Free-Gency-Backend.git
cd Free-Gency-Backend
npm install
Create a config/config.env
file in the project directory and configure the following variables:
# Server Configuration
PORT=8000
NODE_ENV=development
# Database Configuration
DB_USER=your_database_username
DB_PASSWORD=your_database_password
DB_NAME=your_database_name
DB_URI=your_mongodb_connection_string
# JWT Configuration
JWT_SECRET_KEY=your_jwt_secret
JWT_EXPIRE_TIME=3d
# Email Configuration
EMAIL_USER=your_email@example.com
EMAIL_PASS=your_email_password
# Cloudinary Configuration
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
β Make sure not to share these credentials publicly and add config/config.env
to .gitignore
.
# Development mode
npm run start:dev
# Production mode
npm run start:prod
The server will run at http://localhost:8000
.
Method | Endpoint | Description |
---|---|---|
POST |
/signup |
Register a new user |
POST |
/signup-team |
Create a team with team leader |
POST |
/login |
Login user |
GET |
/verify/:token |
Confirm email verification |
POST |
/resend-email |
Resend verification email |
POST |
/forgot-password |
Request password reset |
POST |
/verify-reset-code |
Verify reset code |
POST |
/reset-password |
Reset password |
Method | Endpoint | Description |
---|---|---|
GET |
/ |
Get all users |
POST |
/ |
Create a new user (Admin only) |
GET |
/me |
Get current logged in user |
PUT |
/me |
Update current user profile |
GET |
/:id |
Get a specific user |
PUT |
/:id |
Update a specific user |
DELETE |
/:id |
Delete a specific user |
PATCH |
/changePassword |
Change current user password |
PATCH |
/changePassword/:id |
Change user password (Admin only) |
Method | Endpoint | Description |
---|---|---|
POST |
/ |
Create a new team |
GET |
/ |
Get all teams |
GET |
/:id |
Get team by ID |
PUT |
/:id |
Update team |
DELETE |
/:id |
Delete team |
POST |
/:id/join |
Request to join team |
PATCH |
/:id/accept-member/:userId |
Accept member request |
PATCH |
/:id/reject-member/:userId |
Reject member request |
Coming soon...
The project includes a beautifully designed mobile interface:
Welcome screens showcasing the brand identity with a modern purple theme and creative elements.
Introduction to key features with four main onboarding screens:
- Welcome to Freegency: Connecting clients with agencies and teams
- Seamless Collaboration: Simple communication and project execution
- Discover Opportunities: Browse available talent and find the right team
- Trusted Transactions: Secure payment processing and transparent reviews
- User login
- Registration
- Password recovery
- OTP verification
- Notifications feed
- Team listings
- Projects dashboard
- Creative & Visual
- Advertising & Marketing
- Development & Product
- IT Services
The application supports global error handling for:
- β Unhandled Promise Rejections
- β Uncaught Exceptions
- β Invalid Routes
- β Validation Errors
Contributions are welcome! Feel free to fork the repository and submit pull requests.
This project is licensed under the MIT License.