A fullstack web application that lets freelancers share horror stories and flag red-flag clients anonymously. Features AI-powered analysis to auto-score job posts for red flags like "must be available 24/7" or "exposure."
🌐 Live Demo: https://jmenichole.github.io/Rate-My-Client/
Note: The live demo is frontend-only. Backend features require separate deployment (see DEPLOYMENT.md).
- Anonymous Client Reviews: Share experiences with clients without revealing your identity
- Detailed Rating System: Rate clients on multiple criteria including:
- Overall satisfaction
- Payment promptness
- Communication quality
- Scope creep issues
- AI Job Post Analyzer: Automatically detect red flags in job postings before you apply
- Client Search: Browse and search through client reviews
- Red Flag Tracking: Tag and track common warning signs
- Node.js with Express.js
- SQLite database for data persistence
- RESTful API architecture
- Rule-based AI for red flag detection
- React with Vite
- React Router for navigation
- Tailwind CSS for styling
- Axios for API calls
Rate-My-Client/
├── backend/
│ ├── server.js # Express server setup
│ ├── database.js # Database initialization
│ ├── routes/
│ │ ├── clients.js # Client-related endpoints
│ │ ├── reviews.js # Review CRUD operations
│ │ └── ai.js # AI analysis endpoints
│ └── package.json
├── frontend/
│ ├── src/
│ │ ├── pages/ # React page components
│ │ ├── services/ # API service layer
│ │ ├── App.jsx # Main app component
│ │ └── main.jsx # Entry point
│ └── package.json
└── README.md
- Node.js (v14 or higher)
- npm or yarn
- Clone the repository:
git clone https://github.com/jmenichole/Rate-My-Client.git
cd Rate-My-Client- Install backend dependencies:
cd backend
npm install- Install frontend dependencies:
cd ../frontend
npm install- Start the backend server:
cd backend
npm run devThe backend will run on http://localhost:5000
- In a new terminal, start the frontend:
cd frontend
npm run devThe frontend will run on http://localhost:5173
- Open your browser and navigate to
http://localhost:5173
GET /api/clients- Get all clientsGET /api/clients/:id- Get a specific clientGET /api/clients/search/:query- Search clientsPOST /api/clients- Create a new clientGET /api/clients/:id/stats- Get client statistics
GET /api/reviews- Get all reviewsGET /api/reviews/:id- Get a specific reviewGET /api/reviews/client/:clientId- Get reviews for a clientPOST /api/reviews- Create a new reviewPUT /api/reviews/:id- Update a reviewDELETE /api/reviews/:id- Delete a review
POST /api/ai/analyze-job-post- Analyze a job post for red flagsGET /api/ai/scans- Get scan history
The AI analyzer scans job postings for common red flags including:
- Exposure/Portfolio: Offering "exposure" instead of payment
- 24/7 Availability: Unrealistic availability expectations
- Urgent Deadlines: Pressure tactics and impossible timelines
- Low Budget: Emphasis on minimal cost
- Unlimited Revisions: Scope creep indicators
- Deferred Payment: Payment based on equity or future success
- Unpaid Work: Free or volunteer positions
- Downplaying Complexity: Describing complex work as "simple"
Each flag contributes to a risk score (0-100) with recommendations for freelancers.
id: Primary keyname: Client/contact namecompany: Company name (optional)industry: Industry type (optional)created_at: Timestamp
id: Primary keyclient_id: Foreign key to clientsrating: Overall rating (1-5)title: Review titledescription: Detailed reviewred_flags: JSON array of red flagswould_work_again: Booleanpayment_promptness: Rating (1-5)communication_quality: Rating (1-5)scope_creep_issue: Booleancreated_at: Timestamp
id: Primary keyjob_post_text: Original job postingred_flag_score: Calculated score (0-100)detected_flags: JSON array of detected flagsanalysis: JSON object with detailed analysiscreated_at: Timestamp
All reviews are completely anonymous. We do not collect or store:
- User accounts or login information
- IP addresses
- Personal identifying information
- Email addresses
This ensures freelancers can safely share their experiences without fear of retaliation.
Contributions are welcome! Please feel free to submit a Pull Request.
ISC License
Built to protect and empower freelancers worldwide. Say no to red flag clients!
Disclaimer: This platform is for sharing honest experiences. Please be truthful and factual in your reviews.