A modern, comprehensive web application for managing boarding houses and rental properties. Built with React and designed to streamline property management, tenant tracking, and payment processing.
- Create and manage multiple rooms
- Track room occupancy and resident details
- Add/remove residents from rooms
- Centralized room organization system
- Handle regular payments and re-payments
- Track dues and financial records
- Payment history and balance tracking
- Multi-currency support
- Generate payment reports
- Secure user authentication (login/signup)
- Role-based access control
- Admin dashboard for property owners
- User dashboard for residents
- Profile management
- Comprehensive transaction logs
- Payment analytics
- Financial reporting
- Real-time data tracking
- React 19 - Modern UI library with hooks
- Vite - Fast build tool and development server
- React Router Dom - Client-side routing
- Tailwind CSS 4 - Utility-first CSS framework
- Zustand - Lightweight state management
- React Hook Form - Performant forms with easy validation
- Yup - Schema validation
- @hookform/resolvers - Form validation resolvers
- Axios - HTTP client for API requests
- JWT Decode - JWT token handling
src/
βββ api/ # API service layer
β βββ auth.js # Authentication services
β βββ room.js # Room management APIs
β βββ user.js # User management APIs
β βββ payment.js # Payment processing APIs
β βββ Dashboard.js # Dashboard data APIs
βββ components/ # Reusable UI components
β βββ NavBar.jsx # Navigation component
β βββ Footer.jsx # Footer component
β βββ RoomTable.jsx # Room listing table
β βββ AddRoomPopup.jsx # Room creation modal
β βββ AddMemberPopup.jsx # Member addition modal
β βββ ProtectedRoute.jsx # Route protection
βββ pages/ # Main application pages
β βββ HomePage.jsx # Landing page
β βββ Dashboard.jsx # User dashboard
β βββ DashboardAdmin.jsx # Admin dashboard
β βββ Login.jsx # Authentication page
β βββ Payment.jsx # Payment processing
β βββ Account.jsx # User profile
βββ context/ # React context providers
β βββ GlobalState.jsx # Global state management
β βββ CurrencyContext.jsx# Currency context
βββ config/ # Configuration files
β βββ api.js # API configuration
βββ utils/ # Utility functions
βββ errorHandler.js # Error handling utilities
- Node.js (v18 or higher)
- npm or yarn package manager
- Git
-
Clone the repository
git clone https://github.com/chamithkaveesha/Boading-app.git cd Boading-app -
Install dependencies
npm install
-
Start development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
npm run dev- Start development server with hot reloadnpm run build- Build for productionnpm run preview- Preview production build locallynpm run lint- Run ESLint for code quality
The project includes Docker configuration for easy deployment:
# Build and run with Docker Compose
docker-compose up --build
# Run in detached mode
docker-compose up -d# Build the image
docker build -t boarding-app .
# Run the container
docker run -p 80:80 boarding-app- Zustand for lightweight, scalable state management
- React Context for theme and currency settings
- Local component state for UI interactions
- Protected routes for authenticated users
- Role-based route access (Admin vs User)
- Lazy loading for optimal performance
- Centralized API configuration
- JWT token-based authentication
- Error handling and retry logic
- Request/response interceptors
Create a .env file in the root directory:
VITE_API_BASE_URL=your_api_endpoint
VITE_JWT_SECRET=your_jwt_secretUpdate src/config/api.js with your backend endpoints.
npm run buildThe project includes an nginx.conf file for production deployment with Nginx.
docker-compose -f docker-compose.prod.yml up -d- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Please use the GitHub Issues page to report bugs or request features.
For support and questions, please contact:
- Email: [gdchamithkaveesha@gmail.com]
- GitHub: @chamithkaveesha