Skip to content

Repository files navigation

🏠 ΰΆΆΰ·ΰΆ©ΰ·’ΰΆΈΰ·Š TIKKA - Boarding House Management System

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.

🌟 Features

🏠 Room Management

  • Create and manage multiple rooms
  • Track room occupancy and resident details
  • Add/remove residents from rooms
  • Centralized room organization system

πŸ’° Payment Tracking

  • Handle regular payments and re-payments
  • Track dues and financial records
  • Payment history and balance tracking
  • Multi-currency support
  • Generate payment reports

πŸ‘₯ User Management

  • Secure user authentication (login/signup)
  • Role-based access control
  • Admin dashboard for property owners
  • User dashboard for residents
  • Profile management

πŸ“Š Analytics & Reports

  • Comprehensive transaction logs
  • Payment analytics
  • Financial reporting
  • Real-time data tracking

πŸš€ Tech Stack

Frontend

  • 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

Form & Validation

  • React Hook Form - Performant forms with easy validation
  • Yup - Schema validation
  • @hookform/resolvers - Form validation resolvers

HTTP & Authentication

  • Axios - HTTP client for API requests
  • JWT Decode - JWT token handling

πŸ“ Project Structure

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

πŸ› οΈ Installation & Setup

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn package manager
  • Git

Local Development

  1. Clone the repository

    git clone https://github.com/chamithkaveesha/Boading-app.git
    cd Boading-app
  2. Install dependencies

    npm install
  3. Start development server

    npm run dev
  4. Open your browser Navigate to http://localhost:5173

Available Scripts

  • npm run dev - Start development server with hot reload
  • npm run build - Build for production
  • npm run preview - Preview production build locally
  • npm run lint - Run ESLint for code quality

🐳 Docker Deployment

The project includes Docker configuration for easy deployment:

Using Docker Compose (Recommended)

# Build and run with Docker Compose
docker-compose up --build

# Run in detached mode
docker-compose up -d

Using Docker directly

# Build the image
docker build -t boarding-app .

# Run the container
docker run -p 80:80 boarding-app

πŸ—οΈ Architecture

State Management

  • Zustand for lightweight, scalable state management
  • React Context for theme and currency settings
  • Local component state for UI interactions

Routing

  • Protected routes for authenticated users
  • Role-based route access (Admin vs User)
  • Lazy loading for optimal performance

API Integration

  • Centralized API configuration
  • JWT token-based authentication
  • Error handling and retry logic
  • Request/response interceptors

πŸ”§ Configuration

Environment Variables

Create a .env file in the root directory:

VITE_API_BASE_URL=your_api_endpoint
VITE_JWT_SECRET=your_jwt_secret

API Configuration

Update src/config/api.js with your backend endpoints.

πŸš€ Deployment

Production Build

npm run build

Nginx Configuration

The project includes an nginx.conf file for production deployment with Nginx.

Docker Production

docker-compose -f docker-compose.prod.yml up -d

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ› Bug Reports & Feature Requests

Please use the GitHub Issues page to report bugs or request features.

πŸ“ž Support

For support and questions, please contact:

About

A web app to help boarding members track, share, and settle expenses with ease.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages