A sophisticated car evaluation web application that leverages advanced technology to streamline multi-persona vehicle assessments through an intelligent, user-centric platform.
- Review Management: Create and manage detailed car evaluations across multiple categories
- Task-Based Assessments: Evaluate specific tasks based on defined criteria and scoring rubrics
- Media Capture: Record photos and videos (up to 2 minutes) with validation and proper orientation support
- Firebase Integration: Store and retrieve media files securely with cloud storage
- Category Analysis: Generate insights with strengths, weaknesses, and opportunities
- CUJ Database: Synchronize Critical User Journey data from external sources
- Report Generation: Export comprehensive reports in multiple formats
- User Roles: Admin and reviewer functionality with appropriate permissions
- Frontend: React (TypeScript) with Tailwind CSS and shadcn components
- Backend: Node.js with Express
- Database: PostgreSQL with Drizzle ORM
- Media Storage: Firebase Storage with local fallback
- Testing: Jest, Supertest, and Puppeteer for comprehensive test coverage
- Clone the repository
- Install dependencies with npm
- Set up environment variables (see below)
- Start the development server
Create a .env file with the following variables:
-
Database (provided by PostgreSQL setup)
- DATABASE_URL: PostgreSQL connection string
-
Firebase (required for media storage)
- FIREBASE_API_KEY: Firebase API key
- FIREBASE_PROJECT_ID: Firebase project ID
- FIREBASE_AUTH_DOMAIN: Firebase auth domain
- FIREBASE_STORAGE_BUCKET: Firebase storage bucket
- FIREBASE_MESSAGING_SENDER_ID: Firebase messaging sender ID
- FIREBASE_APP_ID: Firebase app ID
A comprehensive test suite is included for all core CUJs:
- Run all tests with: ./test.sh
- Run specific test categories:
- API tests: npx jest tests/api
- Unit tests: npx jest tests/unit
- E2E tests: npx jest tests/e2e
See the test documentation in tests/README.md for more details.
The application is ready for deployment.
This project is licensed under the MIT License.