workora Tailwind Templates

Workora

Workora is a workspace booking and management system built with Laravel (API), React.js, Tailwind CSS, and MySQL. It features user bookings, admin dashboards, contract uploads, and analytics β€” designed with SOLID principles and event-driven architecture for scalability and clean code.

Workspace Management System

A modern and responsive Workspace Management System built for ABC Company to streamline the booking and management of private office spaces. This full-stack application supports both user-facing bookings and a powerful admin dashboard for workspace administrators.


πŸš€ Project Overview

This system allows users to browse, book, and manage office space rentals, while enabling staff to manage users, contracts, reports, and workspace availability through a secure admin portal.

🧩 Tech Stack

  • Backend: Laravel 12 (PHP ^8.2)
  • Frontend: React.js + Tailwind CSS
  • Database: MySQL
  • Backend Testing: Pest

πŸ› οΈ Prerequisites

Ensure you have the following installed:

  • PHP 8.2+
  • Composer
  • Node.js & NPM
  • MySQL
  • Postman
  • phpstorm (recommended) or other IDE

πŸ”‘ Key Features

βœ… User Portal (React Frontend)

  • User registration and login
  • Calendar view of available booking dates (prevents double bookings)
  • Filter by package types (5/10/15 seaters)
  • Booking form with user full name, company name, telephone, and email
  • View booking history and download contracts
  • Edit user profile

βœ… Admin Dashboard

  • Confirm/cancel bookings and extend booking periods (daily to yearly)
  • Manage users attached to a booking (with NIC, company, contract details)
  • Upload signed contracts
  • CRUD operations for package management
  • View revenue and occupancy rate reports

βœ… Backend API (Laravel)

  • RESTful API using Laravel Sanctum for authentication
  • Email notifications for confirmations, cancellation and contract uploads
  • SQL injection protection (Eloquent) and rate limiting
  • Unit testing with Pest
  • API documentation with Postman

🧱 Database Schema (Highlights)

  • users: User and admin accounts
  • packages: Package details (5/10/15 seaters)
  • bookings: Booking details (user, package, date)
  • booking_extensions: Booking extension details
  • contracts: Contract details (signed contracts)
  • booking_users: Users attached to a booking

πŸ—‚οΈ Architecture

The system is designed with Domain-Driven Design (DDD) principles and adheres to SOLID principles for a clean, scalable, testable and maintainable codebase.

🧠 Backend (Laravel)

  • MVC architecture: Laravel’s Model-View-Controller structure is used as the foundation.
  • Repository Pattern: Data access is abstracted from Eloquent models, promoting flexibility.
  • Actions: Abstracts specific pieces of logic (e.g., CreateBooking, UploadContract) to decouple business logic from controllers and services, making them reusable and testable.
  • Event-Driven Architecture:: Key processes trigger events (e.g., BookingConfirmed, ContractUploaded) to which listeners respond (e.g., email notifications, logs).
  • Dependency Injection: Enables loose coupling between classes.
  • Validation & Security: Uses Laravel Form Requests and default SQL injection protections.

🎨 Frontend (React + Tailwind CSS)

  • Component-Based Architecture: React components are reusable and maintainable.
  • State Management: React Context API is used for global state management.
  • Routing: React Router for client-side routing.
  • Responsive Design: Tailwind CSS for a mobile-first approach.

πŸ”§ Installation

  1. Clone the Repository

    [email protected]:shashikanuwan/workora.git
    
    cd workora
    

πŸ› οΈ Setup - Backend

  1. Go to the backend directory

    cd backend
    
  2. Install dependencies

    composer install
    
  3. Set Up Environment Variables

    cp .env.example .env
    

    Update the database credentials, email and other configuration values.

  4. Generate the application key

    php artisan key:generate
    
  5. Run migrations and seeders

    php artisan migrate --seed
    
  6. Start the local development server:

    php artisan serve
    

    and

    php artisan queu:work
    

πŸ“ Testing

  1. Test the backend

    cd backend
    
    ./vendor/bin/pest
    
  2. Test coverage (Requires XDebug 3.0+ or PCOV)

    ./vendor/bin/pest --coverage
    
  3. Type coverage

    ./vendor/bin/pest --type-coverage
    

⛳️ How to Use

  1. User Portal:

    • Login with the default user using dummy data:
  2. Admin Portal:

    • Login with the default admin using dummy data:

πŸ•Ή Postman Collection

πŸ“œ License

This project is licensed under the MIT License.

πŸ“© Contact

For any questions, reach out at [email protected]

Top categories

Loading Svelte Themes