Modern roommate expense management platform built with Nuxt 4, Vue 3, and PostgreSQL.
Manage shared expenses, recurring bills, and house finances with your roommates - all in one place.
- 🏠 Multi-House Management - Create and switch between multiple shared spaces
- 💰 Smart Expense Splitting - Automatic equal splits with payment tracking
- 📄 Recurring Bills - Manage subscriptions and regular payments
- 📊 Balance Calculator - Real-time who-owes-what calculations
- 📋 Bulletin Board - House announcements and sticky notes
- 🌍 Multi-Currency - Support for EUR, USD, GBP, and more
- 📱 Progressive Web App - Installable on mobile and desktop
- 🔒 Secure - JWT-based authentication with PostgreSQL
# Clone repository
git clone https://github.com/your-username/house-m8-fe.git
cd house-m8-fe
# Install dependencies
npm install
npm install→ Full setup guide: See database migrations in database/ folder
Quick Setup:
- Clone the repository
- Install dependencies:
npm install - Set up PostgreSQL database (see
database/folder) - Configure environment variables (copy
.env.exampleto.env) - Run development server:
npm run dev
Complete backend documentation is available in server/README.md, including:
- API endpoints reference
- Database schema documentation
- Authentication & authorization
- Architecture overview
- OpenAPI Specification:
openapi.yaml - Postman Collection:
postman-collection.json - Database Schema:
database/folder with migrations - Contributing Guide:
CONTRIBUTING.md
| Layer | Technology |
|---|---|
| Framework | Nuxt 4.1 (Vue 3.5, Nitro server) |
| Language | TypeScript 5.7 (strict mode) |
| State Management | Pinia 2.x (Composition API) |
| Database | PostgreSQL (with custom auth & storage) |
| Styling | Tailwind CSS 3.x |
| Testing | Vitest + Vue Test Utils + Playwright |
| Deployment | Vercel (recommended) |
House M8 follows a clean 4-layer architecture:
Request Flow: Component → Store → API Composable → Server → Database
→ Learn more: See architecture details in server/README.md
# Development
npm run dev # Start dev server with hot reload
npm run build # Production build
npm run preview # Preview production build
# Code Quality
npm run lint # Run ESLint
npm run lint:fix # Fix ESLint errors
npm run type-check # Check TypeScript types
# Testing
npm run test # Run unit tests
npm run test:watch # Run tests in watch mode
npm run test:coverage # Generate coverage reportWe welcome contributions! Please read our Contributing Guide to get started.
Quick Contribution Steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
→ Full contribution guide: CONTRIBUTING.md
This project is licensed under the MIT License - see the LICENSE file for details.
- Nuxt Team - Amazing framework
- PostgreSQL - Reliable database
- Vue.js Community - Awesome ecosystem
- Contributors - Thank you for your contributions!
- GitHub: @simone98dm
- Project: github.com/simone98dm/house-m8-fe
If you find this project helpful, please give it a ⭐ on GitHub!