The Workspace Management System is currently deployed for testing purposes at:
Deployed via Laravel Cloud.
You can use the following test accounts to explore the system:
Admin User
Email: admin@admin.com
Password: adminadmin
Regular User
Email: user@user.com
Password: useruser
A full-stack workspace booking management platform built with Laravel 12 and React, supporting:
- Admin & user dashboards
- Booking approval & conflict handling
- Extendable bookings (daily → yearly)
- Seat/package management
- Dockerized local development
- Backend: Laravel 12 (PHP 8.3)
- Frontend: React + Inertia.js
- Auth: Laravel Breeze (React preset)
- Database: MySQL (via Docker)
- Dev Environment: Docker + Makefile
- Shell: /bin/sh
Docker and Make are required.
git clone git@github.com:Thrima97/Full-Stack-Assessment-Task---Shehara-Thrimavithana.git
cd Full-Stack-Assessment-Task---Shehara-Thrimavithana
(Run this command inside the project folder terminal.)
cp .env.example .env
make up
make shell
composer install
php artisan key:generate
Go to http://localhost:8001 to access the database manager and create a database using the given database name.
php artisan migrate
npm install
Compile the frontend assets (CSS and JS) using:
npm run dev
Now you can see the project running in http://localhost:8000.
Now you can see the mailhog running in http://localhost:8025.
make down
(Run this command inside the project folder terminal.)
Email Sending added to queue if your queue connection in database plese run queue work
php artisan user:promote {email}
promote admin using shell
This project includes 7 feature tests to ensure all core booking functionalities are working as expected:
AdminAddNicDetailsTest.php
– Upload NIC details for bookingsAdminUpdateBookingStatusTest.php
– Accept/reject booking requestsAdminUploadContractTest.php
– Upload signed booking contractsCreateBookingTest.php
– Create new workspace bookingsExtendBookingTest.php
– Extend existing bookingsFetchBookingHistoryTest.php
– Retrieve user booking historyFetchPackagesTest.php
– List available workspace packages
All test files are located in the tests/Feature/
directory.
A Postman collection is included to help you test and explore the API endpoints.
📁 File: postman/api_collection.json
🔐 Auth: Uses Laravel Sanctum with Bearer Token
- User authentication
- Package listing
- Booking creation & history
- Booking extension
- Admin: approve/reject, upload NIC & contracts
To get started:
- Import the collection into Postman
- Set
base_url
(e.g.,http://localhost:8000
) - Run
Authenticate
to get yourauth_token
- Use other endpoints with
{{auth_token}}
prefilled