A fun, interactive personality test that matches users with Halloween characters based on their MBTI personality type.
Simple Mode (Default)
- No authentication required
- 15 personality questions
- Instant character results
- 8 unique Halloween characters
- Perfect for quick demos
Advanced Mode
- Email-based authentication
- User profiles
- Test history tracking
- Persistent results
- Secure session management
- Beautiful Halloween-themed UI
- Responsive design (mobile, tablet, desktop)
- Smooth animations and transitions
- Korean language support
- Accessible and user-friendly
- HTTP-only cookies
- JWT authentication
- CSRF protection
- Secure password-less login
- Email verification
- Node.js 18+ (Download)
- npm (comes with Node.js)
- PostgreSQL (only for Advanced Mode)
# Clone the repository
git clone <repository-url>
cd genai_project
# Install backend dependencies
cd backend
npm install
copy .env.example .env
# Install frontend dependencies
cd ../frontend
npm install
copy .env.example .envTerminal 1 - Backend:
cd backend
npm run devβ Backend running on http://localhost:3000
Terminal 2 - Frontend:
cd frontend
npm run devβ Frontend running on http://localhost:5173
Open your browser: Navigate to http://localhost:5173 π
- QUICK_START.md - Get up and running in 5 minutes
- SETUP_AND_RUN.md - Comprehensive setup guide
- ARCHITECTURE.md - System architecture and design
- TROUBLESHOOTING.md - Common issues and solutions
- Take the Test - Answer 15 personality questions across 3 pages
- Get Your Character - Discover which Halloween character matches your personality
- Share Results - Share your spooky character with friends!
The test maps MBTI types to 8 Halloween characters:
- π§ Zombie (ESTJ/ESTP) - Practical and action-oriented
- π Joker (ENTJ/ENTP) - Strategic and charismatic
- π Skeleton (INFJ/INFP) - Thoughtful and introspective
- π» Ghost (ESFJ/ESFP) - Social and expressive
- π Jack-o-lantern (ENFJ/ENFP) - Enthusiastic and inspiring
- π§ Vampire (ISTJ/ISTP) - Analytical and independent
- π° Nun (ISFJ/ISFP) - Caring and artistic
- π§ββοΈ Frankenstein (INTJ/INTP) - Innovative and logical
- React 19
- TypeScript
- Vite
- Redux Toolkit
- React Router
- Tailwind CSS
- Axios
- Vitest
- Node.js
- Express.js
- TypeScript
- PostgreSQL
- AWS SES
- JWT
- Jest
genai_project/
βββ frontend/ # React frontend application
β βββ src/
β β βββ components/ # Reusable components
β β βββ pages/ # Page components
β β βββ store/ # Redux store
β β βββ services/ # API services
β β βββ types/ # TypeScript types
β βββ package.json
β
βββ backend/ # Express backend API
β βββ src/
β β βββ routes/ # API routes
β β βββ controllers/ # Route controllers
β β βββ services/ # Business logic
β β βββ repositories/ # Database access
β β βββ middleware/ # Express middleware
β βββ package.json
β
βββ Documentation files
# Backend tests
cd backend
npm test
# Frontend tests
cd frontend
npm test
# Watch mode
npm test:watch
# With UI
npm test:ui- Unit tests for services and utilities
- Integration tests for API endpoints
- E2E tests for user flows
- Component tests for React components
Backend (.env):
ENABLE_EMAIL_AUTH=false
PORT=3000
FRONTEND_URL=http://localhost:5173Frontend (.env):
VITE_ENABLE_EMAIL_AUTH=false
VITE_API_URL=http://localhost:3000/apiSee SETUP_AND_RUN.md for complete configuration options.
# Backend
cd backend
npm run build
npm start
# Frontend
cd frontend
npm run build
npm run previewThe frontend build will be in frontend/dist/ directory.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the ISC License.
Meet the 8 unique Halloween characters you might match with:
- Zombie - The practical doer who gets things done
- Joker - The strategic mastermind with a plan
- Skeleton - The deep thinker who sees beyond the surface
- Ghost - The social butterfly who brings people together
- Jack-o-lantern - The enthusiastic leader who inspires others
- Vampire - The analytical mind who values independence
- Nun - The caring soul with an artistic touch
- Frankenstein - The innovative genius who thinks differently
- Check TROUBLESHOOTING.md for common issues
- Review SETUP_AND_RUN.md for setup help
- See ARCHITECTURE.md for system details
- Social media sharing
- Multiple language support
- Character comparison
- Detailed personality insights
- Friend matching
- Custom character avatars
GET /health # Health check
GET /api/test/questions # Get test questions
POST /api/test/submit # Submit test answers
POST /api/auth/send-verification # Send verification email
GET /api/auth/verify-token # Verify email token
POST /api/auth/logout # Logout user
GET /api/profile/me # Get user profile
GET /api/profile/history # Get test history
- User-First: Simple, intuitive interface
- Accessible: Works on all devices and screen sizes
- Secure: Industry-standard security practices
- Performant: Fast load times and smooth interactions
- Maintainable: Clean code with comprehensive tests
- Lighthouse Score: 95+
- First Contentful Paint: < 1s
- Time to Interactive: < 2s
- Bundle Size: < 500KB
- HTTP-only cookies for session management
- CSRF protection with SameSite cookies
- JWT token authentication
- Email verification for user registration
- Secure password-less authentication
- Input validation and sanitization
- SQL injection prevention
- XSS protection
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Mobile browsers (iOS Safari, Chrome Mobile)
Made with π and β€οΈ
Happy Halloween Testing! π»π¦π·οΈ