A modern, minimal web application for managing household cleaning tasks with multi-user support and admin capabilities.
✨ Core Features:
- Room Management: Create and organize rooms in your house
- Section Organization: Break down rooms into specific sections (e.g., Kitchen → Countertops, Appliances)
- Mission Assignment: Create and assign cleaning tasks to family members
- User Accounts: Password-protected accounts for each family member
- Admin Panel: Comprehensive admin interface for user and mission management
- Role-Based Access: Admin and member roles with different permissions
🎨 Design:
- Clean, modern, minimal interface
- Beautiful teal/green color scheme
- Fully responsive design
- Smooth animations and transitions
-
Development:
pnpm install pnpm dev
-
Demo Accounts:
- Admin: admin@cleanhouse.app / admin123
- Member: member@cleanhouse.app / member123
The app currently runs with a mock backend using Express.js with in-memory data storage. This is suitable for development and demo purposes.
For a production deployment, you'll need to implement the following:
- PostgreSQL or MySQL recommended
- Required tables:
users(id, email, name, password_hash, role, created_at, updated_at)rooms(id, name, description, created_at, updated_at)sections(id, name, description, room_id, created_at, updated_at)missions(id, title, description, section_id, assigned_user_id, status, priority, due_date, completed_at, created_at, updated_at)
- Password Hashing: Use bcrypt or similar for password storage
- JWT Tokens: Implement proper JWT authentication
- Session Management: Secure session handling
- CORS Configuration: Proper CORS setup for production domains
// Authentication
POST /api/auth/login
GET /api/users
POST /api/users
DELETE /api/users/:userId
// Rooms
GET /api/rooms
POST /api/rooms
DELETE /api/rooms/:roomId
// Sections
GET /api/rooms/:roomId/sections
POST /api/sections
// Missions
GET /api/missions
POST /api/missions
PUT /api/missions/:missionId
DELETE /api/missions/:missionIdOption 1: Node.js/Express (Current)
- Express.js with TypeScript
- PostgreSQL with Prisma ORM
- bcrypt for password hashing
- jsonwebtoken for JWT auth
Option 2: Supabase (Recommended for Quick Production)
- Built-in PostgreSQL database
- Authentication & user management
- Create a project in Supabase
- Add
.envvariables:VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEY
- Client initialized in
client/lib/supabase.ts
- Configure project on Vercel
- Add Environment Variables from
.env.example - Routes:
- API served by
api/[...path].ts(Express wrapped via serverless) - SPA built into
dist/spaand served viavercel.jsonrewrites
- API served by
- Real-time subscriptions
- File storage if needed
Option 3: Next.js API Routes
- Full-stack React with API routes
- Prisma ORM for database
- NextAuth.js for authentication
DATABASE_URL=postgresql://username:password@localhost:5432/cleanhouse
JWT_SECRET=your-super-secret-jwt-key
BCRYPT_ROUNDS=12
NODE_ENV=production- Database hosting: Railway, Supabase, or managed PostgreSQL
- If using Supabase, set
SUPABASE_URLandSUPABASE_SERVICE_ROLE_KEYin server env, andVITE_SUPABASE_URL,VITE_SUPABASE_ANON_KEYin client env.
- If using Supabase, set
- App hosting: Vercel, Netlify, or Railway
- Environment security: Proper secret management
- HTTPS: SSL certificate for production
This app is ready for Builder.io MCP integrations:
- Neon: For production PostgreSQL database
- Supabase: For backend-as-a-service with auth
- Netlify/Vercel: For deployment and hosting
client/ # React frontend
├── components/ # Reusable UI components
├── hooks/ # Custom React hooks (auth, etc.)
├── pages/ # Route components
└── lib/ # Utilities
server/ # Express backend
├── routes/ # API route handlers
└── index.ts # Server configuration
shared/ # Shared TypeScript types
└── api.ts # API interfaces
- Frontend: React 18, TypeScript, Tailwind CSS, Radix UI
- Backend: Express.js, Node.js
- Routing: React Router 6
- State: React Query for server state
- Build: Vite
- UI Components: Radix UI primitives with custom styling
- Icons: Lucide React
This is a demonstration project built with Builder.io. For production use, implement the backend requirements listed above.