Channel Zero is a full-stack MERN application that helps groups (roommates, friends, travel buddies) manage shared expenses transparently and efficiently. Users can create dedicated channels for specific purposes like "Room Cooking", "Goa Trip", or "Monthly Groceries", invite others to join, track expenses, and maintain clear financial accountability within groups.
- π Channel-based Organization: Create separate channels for different activities, trips, or shared expenses
- π₯ Flexible Member Management: Invite members via email or shareable join links
- π³ Expense Tracking: Add expenses with details (amount, description, date, payer)
- π Real-time Summaries: View total expenses, individual balances, and contribution breakdowns
- π Advanced Filtering: Filter expenses by date range, member, category, or keywords
- π Secure Authentication: JWT-based user authentication and authorization
- π± Mobile Responsive Design
- π§ Email Notifications for new expenses and settlements
- π Expense Analytics with charts and insights
- πΎ Export Options (CSV, PDF) for accounting
- π³οΈ Group Polls for expense approvals
- π± Mobile App (React Native)
- React 19 with TypeScript
- Vite for fast development and building
- Tailwind CSS for styling (planned)
- Axios for API communication (planned)
- React Router for navigation (planned)
- Node.js with Express.js
- MongoDB with Mongoose ODM (planned)
- JWT for authentication (planned)
- bcrypt for password hashing (planned)
- Joi for input validation (planned)
- ESLint with TypeScript support
- Nodemon for backend development
- Git for version control
- Node.js (v18 or higher)
- npm or yarn
- MongoDB (local or MongoDB Atlas)
- Git
- Clone the repository
git clone https://github.com/yourusername/shared-expenses-channels.git
cd shared-expenses-channels- Backend Setup
cd server
npm install
npm run devThe server will start on http://localhost:3000
- Frontend Setup (in a new terminal)
cd client
npm install
npm run devThe client will start on http://localhost:5173
Create .env files in both client and server directories:
Server (.env)
PORT=3000
MONGODB_URI=mongodb://localhost:27017/shared-expenses
JWT_SECRET=your-super-secret-jwt-key
NODE_ENV=development
EMAIL_SERVICE=gmail
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-app-passwordClient (.env)
VITE_API_BASE_URL=http://localhost:3000/apishared-expenses-channels/
βββ README.md
βββ client/ # React frontend
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ hooks/ # Custom React hooks
β β βββ services/ # API service functions
β β βββ utils/ # Helper functions
β β βββ types/ # TypeScript type definitions
β β βββ App.tsx
β βββ public/
β βββ package.json
β βββ vite.config.ts
βββ server/ # Express backend
β βββ controllers/ # Route controllers
β βββ models/ # Mongoose models
β βββ routes/ # API routes
β βββ middleware/ # Custom middleware
β βββ utils/ # Helper functions
β βββ config/ # Configuration files
β βββ index.js
β βββ package.json
βββ docs/ # Documentation
- Sign Up/Login: Users create accounts with secure authentication
- Create Channel: Start a new expense channel (e.g., "Room Groceries March 2025")
- Invite Members: Add friends via email invites or shareable links
- Track Expenses: Log purchases with who paid, amount, and description
- Monitor Balances: View real-time summaries of who owes what
- Settle Up: Clear balances and maintain transparency
- Roommate Expenses: Monthly groceries, utilities, cleaning supplies
- Travel Groups: Trip accommodations, meals, activities, transportation
- Event Planning: Party supplies, venue costs, catering
- Study Groups: Books, materials, shared subscriptions
POST /api/auth/register # User registration
POST /api/auth/login # User login
GET /api/auth/profile # Get user profile
GET /api/channels # Get user's channels
POST /api/channels # Create new channel
GET /api/channels/:id # Get channel details
PUT /api/channels/:id # Update channel
DELETE /api/channels/:id # Delete channel
POST /api/channels/:id/join # Join channel via invite
GET /api/channels/:id/expenses # Get channel expenses
POST /api/channels/:id/expenses # Add new expense
PUT /api/expenses/:id # Update expense
DELETE /api/expenses/:id # Delete expense
npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLintnpm run dev # Start with nodemon (development)
npm start # Start production server
npm test # Run tests (planned)- Build the client:
npm run build - Deploy the
distfolder to your hosting platform - Configure environment variables
- Connect your GitHub repository
- Set environment variables
- Configure build and start commands
- Create a MongoDB Atlas cluster
- Configure network access and users
- Update connection string in environment variables
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
- Use TypeScript for type safety
- Follow ESLint configurations
- Write meaningful commit messages
- Add tests for new features
- Basic project setup
- User authentication
- Channel creation and management
- Expense CRUD operations
- Basic UI components
- Responsive design
- Real-time updates (Socket.io)
- Advanced filtering and search
- Expense categories and tags
- Settlement suggestions
- Email notifications
- Export functionality
- Mobile app (React Native)
- Expense analytics and charts
- Multi-currency support
- Currently in active development
- Authentication system needs implementation
- Database models need to be created
- Frontend components need styling
This project is licensed under the MIT License - see the LICENSE file for details.
Balaji R - Full Stack Developer
- GitHub: @BalajiRKB
- LinkedIn: Balaji RKB
- Email: balaji648balaji@gmail.com
- Inspired by real-world roommate and travel group expense management needs
- Built with modern MERN stack best practices
- Thanks to the open-source community for amazing tools and libraries
β If you find this project helpful, please give it a star!
Built with β€οΈ for transparent group expense management