- Overview
- Features
- Tech Stack
- Getting Started
- API Documentation
- Project Structure
- Environment Variables
- Contributors
Performly is a comprehensive platform that connects performers with clients, enabling seamless booking and management of performances. The platform facilitates the entire process from discovery to booking, payment, and review.
-
User Management
- Secure authentication system
- Profile management
- Role-based access control
-
Performer Features
- Profile creation and management
- Performance portfolio
- Availability calendar
- Booking management
-
Client Features
- Search and discover performers
- Booking management
- Payment processing
- Review system
-
Booking System
- Real-time availability checking
- Secure payment processing
- Booking confirmation
- Calendar integration
- Runtime Environment: Node.js
- Framework: Express.js
- Database: MongoDB with Mongoose
- Authentication: JWT (JSON Web Tokens)
- Payment Processing: Razorpay
- Validation: Express Validator
- Security: bcrypt for password hashing
- Framework: React.js
- Styling: CSS & TailwindCSS
- UI Components: Custom components
- Node.js (v14 or higher)
- MongoDB
- npm or yarn
- Clone the repository
git clone https://github.com/yourusername/performly-backend.git
cd performly-backend- Install dependencies
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install- Environment Setup
Create a
.envfile in the backend directory with the following variables:
PORT=8080
MONGO_URL=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
RAZORPAY_KEY_ID=your_razorpay_key
RAZORPAY_KEY_SECRET=your_razorpay_secret- Start the application
# Start backend server
cd backend
npm start
# Start frontend development server
cd frontend
npm startPOST /api/users/signup- Register new userPOST /api/users/login- User loginGET /api/users/profile- Get user profilePUT /api/users/profile- Update user profile
GET /api/performers- List performersPOST /api/performers- Create performer profileGET /api/performers/:id- Get performer detailsPUT /api/performers/:id- Update performer profile
POST /api/bookings- Create bookingGET /api/bookings- List bookingsGET /api/bookings/:id- Get booking detailsPUT /api/bookings/:id- Update booking status
performly-backend/
├── backend/
│ ├── controllers/ # Request handlers
│ ├── models/ # Database models
│ ├── routes/ # API routes
│ ├── middleware/ # Custom middleware
│ ├── db/ # Database configuration
│ ├── utils/ # Utility functions
│ └── index.js # Application entry point
├── frontend/
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ ├── redux/ # State management
│ │ ├── services/ # API services
│ │ └── utils/ # Utility functions
│ └── public/ # Static files
└── README.md
| Variable | Description | Required |
|---|---|---|
| PORT | Server port number | No (default: 8080) |
| MONGO_URL | MongoDB connection string | Yes |
| JWT_SECRET | Secret for JWT token generation | Yes |
| RAZORPAY_KEY_ID | Razorpay API key | Yes |
| RAZORPAY_KEY_SECRET | Razorpay API secret | Yes |