A comprehensive review platform where users can share honest reviews about everything - from restaurants and gadgets to services and experiences. Built with modern web technologies and featuring an excellent user experience.
- Secure authentication via Replit Auth
- User profiles with avatars and stats
- Session management with PostgreSQL storage
- Rich text editor for detailed reviews
- Star rating system (1-5 stars)
- Image upload support (up to 5 images per review)
- Draft functionality to save work in progress
- Categories for organized browsing
- Pre-defined categories: Restaurants, Technology, Travel, Beauty, Shopping, Health
- Color-coded category system
- Category-specific filtering
- Advanced filtering by category, rating, and keywords
- Multiple sorting options (recent, rating, helpful, oldest)
- Grid and list view modes
- Search across review titles and content
- Personal review management
- Draft reviews
- User statistics (total reviews, average rating, helpful votes)
- Analytics section (coming soon)
- Responsive design for all devices
- Clean, intuitive interface
- Dark mode support
- Smooth animations and transitions
- Accessible design patterns
- React 18 with TypeScript
- Vite for fast development and building
- Wouter for lightweight routing
- TanStack Query for server state management
- Tailwind CSS for styling
- shadcn/ui for UI components
- React Hook Form + Zod for form validation
- Node.js with Express.js
- TypeScript for type safety
- Drizzle ORM for database operations
- Neon PostgreSQL for data storage
- Multer for file uploads
- Passport.js with OpenID Connect for authentication
- PostgreSQL with the following tables:
- Users (with Replit Auth integration)
- Categories
- Reviews
- Review Votes
- Sessions
- Node.js 18+
- PostgreSQL database
- Replit account (for authentication)
- Clone the repository:
git clone https://github.com/yourusername/rarereviews.git
cd rarereviews- Install dependencies:
npm install- Set up environment variables:
DATABASE_URL=your_postgresql_connection_string
SESSION_SECRET=your_session_secret
REPL_ID=your_replit_app_id
REPLIT_DOMAINS=your_domain.replit.app- Set up the database:
npm run db:push- Start the development server:
npm run devThe application will be available at http://localhost:5000
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run db:push- Push database schema changesnpm run db:studio- Open Drizzle Studio for database management
rarereviews/
├── client/ # Frontend React application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Application pages
│ │ ├── hooks/ # Custom React hooks
│ │ └── lib/ # Utility functions
├── server/ # Backend Express application
│ ├── db.ts # Database connection
│ ├── routes.ts # API routes
│ ├── storage.ts # Database operations
│ └── replitAuth.ts # Authentication setup
├── shared/ # Shared types and schemas
│ └── schema.ts # Database schema and types
└── uploads/ # User uploaded images
Users can create detailed reviews with:
- Rich text content with formatting options
- 1-5 star ratings
- Multiple image uploads
- Category selection
- Draft saving functionality
- Users can vote reviews as "helpful" or "not helpful"
- Vote counts are displayed on review cards
- Prevents duplicate voting per user
- Full-text search across review titles and content
- Filter by category, minimum rating
- Sort by recency, rating, or helpfulness
- Pagination for large result sets
- Secure session management
- File upload validation
- SQL injection prevention via Drizzle ORM
- Authentication middleware protection
- CORS and security headers
The application is fully responsive and works seamlessly across:
- Desktop computers
- Tablets
- Mobile phones
- Various screen sizes and orientations
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Replit for seamless development
- UI components from shadcn/ui
- Icons from Lucide React
- Database powered by Neon
If you have any questions or need help setting up the project, please open an issue or contact the maintainers.
RaReReviews - Share honest reviews, discover authentic experiences! 🌟