A modern, scalable web application designed to connect app developers with a global community of testers. Built with Next.js 15, TypeScript, and Tailwind CSS, this platform facilitates the entire app testing lifecycle, from project submission to feedback collection, powered by role-based access control and AI integration.
- Role-Based Access Control (RBAC): Secure and distinct environments for different user types:
- Admin: Comprehensive management dashboard for overseeing users, applications, and platform global settings.
- Authenticated User: Dual-dashboard system:
- Main Dashboard: Manage personal projects, submit new apps for testing, and track project status.
- Community Dashboard: Browse available testing tasks, manage "My Queue", track "Active Tests", and view submission history.
- Professional Tester: Dedicated workspace for professional-grade testing assignments and higher-level tasks.
- Public: informative landing pages, blogs, and documentation accessible to all visitors.
- AI-Powered Integration: Leveraging Google Genkit to enhance testing workflows and provide intelligent insights.
- Support Chatbot: Integrated AI assistant to help users navigate the platform and resolve issues.
- Rich Data Visualization: Interactive charts and analytics powered by Recharts for tracking testing progress and community engagement.
- Modern UI Design: Built with Radix UI primitives and Shadcn/UI patterns for accessible, high-quality componentry.
- Dynamic Animations: Smooth, engaging transitions and micro-interactions using Framer Motion and GSAP.
- Responsive Layouts: Fully optimized for seamless performance across desktop, tablet, and mobile devices.
- Type Safety: End-to-end type safety with TypeScript.
- Form Management: Robust form handling and validation using React Hook Form and Zod.
- State Management: Efficient server-state synchronization with TanStack Query.
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS, Tailwind Merge, CLSX
- State Management: TanStack Query
- UI Components: Radix UI, Lucide React
- Animations: Framer Motion, GSAP
- Backend & Auth: Firebase, Better Auth, Jose
- AI: Genkit
- Utilities: Date-fns, Axios
A high-level overview of the application's file structure:
├── src
│ ├── app # Next.js App Router pages
│ │ ├── (admin) # Admin dashboard & auth routes
│ │ ├── (authenticated) # User dashboards (Main, Community, Profile, etc.)
│ │ ├── (professional) # Professional tester dashboard routes
│ │ ├── (public) # Public pages (Home, Blog, Auth, Legal)
│ │ └── ...
│ ├── components # Reusable UI components
│ │ ├── ui # Base UI components (buttons, inputs, etc.)
│ │ ├── community-dashboard # Components specific to the community dashboard
│ │ ├── blog # Blog-related components
│ │ ├── profile-setup # Profile creation flow components
│ │ └── ...
│ ├── context # React Context providers
│ ├── hooks # Custom React hooks
│ ├── lib # Utility functions and library configurations
│ ├── types # TypeScript type definitions
│ └── middleware.ts # Route protection and role validation logic
├── public # Static assets (images, icons)
├── .env # Environment variables (local)
└── next.config.ts # Next.js configuration
Follow these steps to set up the project locally.
- Node.js: >= 20.x
- npm: >= 10.x
-
Clone the repository:
git clone <repository-url> cd testercommunity2
-
Install dependencies:
npm install
Create a .env file in the root directory. You can use the provided env-example.txt as a reference.
cp env-example.txt .envOpen .env and configure the following required variables:
NEXT_PUBLIC_BACKEND_URL=http://localhost:3000 # Your API URL
BETTER_AUTH_SECRET=your_super_secret_key # Secret for auth sessions
NEXT_PUBLIC_ENCRYPTION_SECRET=your_key # Secret for encryptionStart the development server with Turbopack for faster builds:
npm run devThe application will be available at http://localhost:9002.
| Script | Description |
|---|---|
npm run dev |
Starts the development server on port 9002 with Turbopack. |
npm run build |
Builds the application for production. |
npm run start |
Starts the production server. |
npm run lint |
Runs the linter to catch code style issues. |
npm run typecheck |
Runs TypeScript type checking. |
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new 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 licensed under the MIT License - see the LICENSE file for details.