A comprehensive platform for users to create accounts, share product reviews with ratings, categorize reviews, and interact with posts through voting and commenting.
- Overview
- Features
- Tech Stack
- Live Demo
- Installation
- Usage
- API Documentation
- Project Structure
- Environment Variables
- Contributing
- License
- Contact
Critiqo is a modern review platform that allows users to share their experiences with products through detailed reviews and ratings. The platform features premium content with payment integration, community interaction through voting and commenting, and robust admin moderation capabilities.
- User-Centric Design: Intuitive interface for seamless user experience
- Premium Content: Monetization through premium review features
- Community Driven: Interactive voting and commenting system
- Admin Control: Comprehensive moderation and content management
- Scalable Architecture: Built with modern technologies for performance
- Secure user registration and login
- JWT-based session management
- Password reset functionality
- Profile management
- Create comprehensive product reviews with ratings
- Edit and update existing reviews
- Delete reviews with proper authorization
- Rich text editor support
- Image upload capabilities
- Organize reviews into product categories
- Advanced filtering and search options
- Sort by ratings, date, popularity
- Tag-based organization
- Sell premium reviews and content
- Secure payment processing integration
- Subscription management
- Revenue tracking
- Upvote and downvote reviews
- Comment on reviews
- Reply to comments
- User reputation system
- Review approval workflow
- Content moderation tools
- User management
- Analytics dashboard
- Cloudinary integration for image storage
- Multiple image uploads per review
- Image optimization and compression
- Responsive image delivery
- Advanced search functionality
- Filter by categories, ratings, and keywords
- Sort options for better discovery
- Trending and popular content
- Next.js - React framework for production
- React - UI library
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- Node.js - Runtime environment
- Express.js - Web application framework
- TypeScript - Type-safe server development
- PostgreSQL - Relational database
- Prisma - Next-generation ORM
- JWT - JSON Web Token authentication
- Joi - Request validation
- Bcrypt - Password hashing
- Cloudinary - Image and video management
- Multer - File upload handling
- Vercel - Frontend deployment
- Railway/Heroku - Backend hosting
- PostgreSQL Cloud - Database hosting
Visit the live application: https://critiqo-frontend.vercel.app
- User Account: demo@critiqo.com / password123
- Admin Account: admin@critiqo.com / admin123
Ensure you have the following installed:
- Node.js (v14 or higher)
- npm or yarn or pnpm
- PostgreSQL (local or cloud instance)
- Git
git clone https://github.com/AKsamrat/critiqo.git
cd critiqoFor the frontend:
# Navigate to frontend directory (if separate)
npm install
# or
yarn install
# or
pnpm installFor the backend:
# Navigate to backend directory (if separate)
npm install
# or
yarn install
# or
pnpm installCreate a .env file in the root directory and add the following variables:
# Database Configuration
DATABASE_URL="postgresql://username:password@localhost:5432/critiqo"
DIRECT_URL="postgresql://username:password@localhost:5432/critiqo"
# JWT Configuration
JWT_SECRET="your-super-secret-jwt-key"
JWT_EXPIRES_IN="7d"
# Cloudinary Configuration
CLOUDINARY_CLOUD_NAME="your-cloud-name"
CLOUDINARY_API_KEY="your-api-key"
CLOUDINARY_API_SECRET="your-api-secret"
# Application URLs
FRONTEND_URL="http://localhost:3000"
BACKEND_URL="http://localhost:5000"
# Payment Gateway (if applicable)
STRIPE_SECRET_KEY="your-stripe-secret-key"
STRIPE_PUBLISHABLE_KEY="your-stripe-publishable-key"
# Email Configuration (for notifications)
EMAIL_SERVICE="gmail"
EMAIL_USER="your-email@gmail.com"
EMAIL_PASS="your-app-password"# Generate Prisma client
npx prisma generate
# Run database migrations
npx prisma migrate dev
# Seed the database (if seed file exists)
npx prisma db seednpm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devThe application will be available at http://localhost:3000
- Registration/Login: Create an account or sign in
- Browse Reviews: Explore product reviews by category
- Create Reviews: Share your product experiences
- Interact: Vote on reviews and leave comments
- Premium Content: Access exclusive premium reviews
- Admin Dashboard: Access admin panel at
/admin - Content Moderation: Review and approve user submissions
- User Management: Manage user accounts and permissions
- Analytics: View platform statistics and insights
POST /api/auth/register - User registration
POST /api/auth/login - User login
POST /api/auth/logout - User logout
GET /api/auth/profile - Get user profile
PUT /api/auth/profile - Update user profile
GET /api/reviews - Get all reviews
POST /api/reviews - Create new review
GET /api/reviews/:id - Get specific review
PUT /api/reviews/:id - Update review
DELETE /api/reviews/:id - Delete review
GET /api/categories - Get all categories
POST /api/categories - Create new category
PUT /api/categories/:id - Update category
DELETE /api/categories/:id - Delete category
POST /api/reviews/:id/vote - Vote on review
POST /api/reviews/:id/comment - Comment on review
GET /api/comments/:id - Get comment
PUT /api/comments/:id - Update comment
DELETE /api/comments/:id - Delete comment
critiqo/
โโโ ๐ components/ # Reusable UI components
โ โโโ ๐ ui/ # Basic UI components
โ โโโ ๐ forms/ # Form components
โ โโโ ๐ layout/ # Layout components
โโโ ๐ pages/ # Next.js pages
โ โโโ ๐ api/ # API routes
โ โโโ ๐ auth/ # Authentication pages
โ โโโ ๐ admin/ # Admin pages
โโโ ๐ lib/ # Utility libraries
โ โโโ ๐ prisma.ts # Prisma client
โ โโโ ๐ auth.ts # Authentication utilities
โ โโโ ๐ utils.ts # General utilities
โโโ ๐ styles/ # CSS and styling files
โโโ ๐ public/ # Static assets
โโโ ๐ prisma/ # Database schema and migrations
โ โโโ ๐ schema.prisma # Database schema
โ โโโ ๐ migrations/ # Database migrations
โโโ ๐ .env.example # Environment variables template
โโโ ๐ package.json # Dependencies and scripts
โโโ ๐ tailwind.config.js # Tailwind CSS configuration
โโโ ๐ next.config.js # Next.js configuration
โโโ ๐ README.md # Project documentation
| Variable | Description | Required |
|---|---|---|
DATABASE_URL |
PostgreSQL connection string | Yes |
JWT_SECRET |
Secret key for JWT tokens | Yes |
CLOUDINARY_CLOUD_NAME |
Cloudinary cloud name | Yes |
CLOUDINARY_API_KEY |
Cloudinary API key | Yes |
CLOUDINARY_API_SECRET |
Cloudinary API secret | Yes |
FRONTEND_URL |
Frontend application URL | Yes |
BACKEND_URL |
Backend API URL | Yes |
STRIPE_SECRET_KEY |
Stripe payment secret key | Optional |
EMAIL_USER |
Email service username | Optional |
EMAIL_PASS |
Email service password | Optional |
We welcome contributions to Critiqo! Please follow these steps:
-
Fork the Repository
git fork https://github.com/AKsamrat/critiqo.git
-
Create a Feature Branch
git checkout -b feature/your-feature-name
-
Make Your Changes
- Follow the existing code style
- Add tests for new features
- Update documentation as needed
-
Commit Your Changes
git commit -m "Add: your feature description" -
Push to Your Fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Provide a clear description of changes
- Include screenshots if applicable
- Reference any related issues
- Use TypeScript for type safety
- Follow ESLint and Prettier configurations
- Write meaningful commit messages
- Add appropriate comments to complex logic
- Test your changes thoroughly
This project is licensed under the MIT License - see the LICENSE file for details.
Developer: AKsamrat
- GitHub: @AKsamrat
- Email: samratuap52@gmail.com
- LinkedIn: Your LinkedIn Profile
- Live Demo: https://critiqo-frontend.vercel.app
- Repository: https://github.com/AKsamrat/critiqo
- Issues: Report Issues
- Discussions: Join Discussions
โญ Star this repository if you found it helpful!
Made with โค๏ธ by AKsamrat