Launch better products with real testers
CrowdTest is a community-driven bug testing platform that connects developers with real testers to catch bugs before launch. Get pre-launch feedback from passionate testers and ensure your application is production-ready.
Website: crowdtest.dev
- Features
- Tech Stack
- Getting Started
- Project Structure
- Core Features
- Database
- Authentication
- API Endpoints
- Contributing
- Deployment
- Project Management: Developers can create projects and submit them for testing
- Bug Reporting: Real testers report bugs with detailed descriptions and screenshots
- Waitlist Management: Email verification and confirmation workflow
- User Roles: Support for Developer, Tester, and Admin roles
- Cloudinary Integration: Screenshot uploads and management
- Email Notifications: Confirmation emails via Brevo SMTP
- Dark Mode: Responsive UI with theme toggle
- JWT Authentication: Secure user authentication and session management
- Next.js 16 - React framework with App Router
- React 19 - UI library
- TypeScript - Type safety
- Tailwind CSS 4 - Styling
- React Hook Form - Form state management
- React Hot Toast - Toast notifications
- Lucide React - Icon library
- Next.js API Routes - Serverless functions
- Node.js - Runtime
- PostgreSQL - Relational database
- Prisma ORM - Database toolkit and query builder
- Cloudinary - Image hosting and management
- Brevo (Sendinblue) - Email delivery
- ESLint - Code linting
- Vercel - Hosting and deployment
- Node.js 18+ and npm (or yarn, pnpm, bun)
- PostgreSQL database (local or cloud)
- Environment variables configured (see Environment Setup)
- Clone the repository:
git clone https://github.com/Easyblend/CrowdTest.git
cd CrowdTest- Install dependencies:
npm installCreate a .env.local file in the root directory:
# Database
DATABASE_URL=postgresql://user:password@localhost:5432/crowdtest
# JWT Secret
JWT_SECRET=your_jwt_secret_key_here
# Cloudinary
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
# Email (Brevo)
BREVO_SMTP_USER=your_brevo_email
BREVO_SMTP_PASS=your_brevo_password
# Site URL
NEXT_PUBLIC_SITE_URL=http://localhost:3000- Run migrations:
npx prisma migrate dev- (Optional) Open Prisma Studio to view data:
npx prisma studioStart the development server:
npm run devOpen http://localhost:3000 in your browser.
βββ app/
β βββ api/ # API routes
β β βββ auth/ # Authentication endpoints
β β βββ admin/ # Admin operations
β β βββ projects/ # Project management
β β βββ bugs/ # Bug reporting
β β βββ me/ # User profile
β β βββ waitlist/ # Waitlist management
β βββ component/ # Reusable components
β βββ dashboard/ # Dashboard pages
β βββ login/ # Login page
β βββ signup/ # Signup page
β βββ waitlist/ # Waitlist pages
β βββ lib/ # Utilities
β βββ globals.css # Global styles
βββ context/ # React Context providers
βββ prisma/
β βββ schema.prisma # Database schema
β βββ migrations/ # Database migrations
βββ public/ # Static assets
- Create and manage projects
- Submit projects for beta testing
- Track bug reports with detailed information
- Download or view test reports
- Join the waitlist for early access
- Browse available projects to test
- Report bugs with screenshots
- Contribute to product quality
- Manage users and roles
- Monitor platform activity
- Update token management
The project uses PostgreSQL with Prisma ORM. Key models:
- User: Dev, Tester, and Admin accounts
- Project: Projects submitted for testing
- Bug: Bug reports with severity levels
- Screenshot: Image uploads for bug reports
- Waitlist: Email verification flow
- JWT-based authentication
- Email/password sign-up and login
- Secure password hashing with bcrypt
- Confirmation email workflow for waitlist
POST /api/auth/signup- Register new userPOST /api/auth/login- Login userPOST /api/auth/logout- Logout user
GET /api/projects- List projectsPOST /api/projects- Create projectGET /api/projects/[id]- Get project detailsGET /api/projects/[id]/bugs- Get project bugs
GET /api/bugs/[id]- Get bug detailsPOST /api/projects/[id]/bugs- Report bug
POST /api/waitlist- Join waitlistGET /api/waitlist/confirm- Confirm email
GET /api/me- Get current user profile
The easiest way to deploy CrowdTest is using Vercel:
- Push your code to GitHub
- Connect your repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy
For more details, see Next.js Deployment Docs.
Contributions are welcome! Please feel free to submit pull requests or open issues.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is private and proprietary.
For support, questions, or feedback, visit crowdtest.dev or join our waitlist to stay updated!