Skip to content

WheezyBaton/booked.com

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

117 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Booked - Accommodation Booking System

A comprehensive full-stack web application designed for booking accommodations and rooms. The project consists of a backend built with Java/Spring Boot and a frontend developed using the Angular framework. The entire system is fully containerized using Docker.

πŸš€ Technologies

Backend (/booked.backend)

  • Language: Java
  • Framework: Spring Boot
  • Database: PostgreSQL
  • Security: Spring Security + JWT (JSON Web Token)
  • Build Tool: Maven

Frontend (/booked-frontend)

  • Framework: Angular
  • Language: TypeScript
  • Styles: SCSS
  • Tools: ESLint, Prettier

Infrastructure

  • Docker & Docker Compose (for easy setup and execution of the database and application)

✨ Key Features

The system supports three main user roles:

1. User (Guest)

  • Search for properties based on availability and specific criteria.
  • View property details (photo gallery, amenities, reviews).
  • Room booking and payment process.
  • Manage personal profile and view booking history.
  • Leave ratings and reviews after a completed stay.

2. Property Owner (Owner)

  • Add and manage own accommodation properties.
  • Manage rooms (add, edit, set availability).
  • Review bookings made by guests.
  • Dashboard with summaries and statistics.

3. Administrator

  • Verify newly added properties.
  • Review and resolve user reports and complaints.
  • Manage users (e.g., block/ban accounts).
  • Access advanced platform statistics.

πŸ“‚ Project Structure

β”œβ”€β”€ booked.backend/       # API source code (Spring Boot)
β”‚   β”œβ”€β”€ src/main/java/    # Controllers, Services, Models, Repositories, Security
β”‚   β”œβ”€β”€ src/main/resources# Configuration files (application.yml, SQL scripts)
β”‚   β”œβ”€β”€ Dockerfile        # Docker image configuration for the backend
β”‚   └── pom.xml           # Maven dependencies
β”‚
β”œβ”€β”€ booked-frontend/      # User interface source code (Angular)
β”‚   β”œβ”€β”€ src/app/          # Components, Services, Guards, Interceptors, Interfaces
β”‚   β”œβ”€β”€ public/           # Static assets (e.g., favicon)
β”‚   β”œβ”€β”€ Dockerfile        # Docker image configuration for the frontend
β”‚   └── package.json      # NPM dependencies
β”‚
└── docker-compose.yml    # Multi-container environment configuration

πŸ› οΈ How to Run Locally

Method 1: Using Docker Compose (Recommended)

The fastest way to run the entire application (Database + Backend + Frontend) is by using Docker.

  1. Ensure you have Docker installed and running.
  2. Navigate to the root folder of the project.
  3. Run the following command:
    docker-compose up -d --build
    
  4. The application should now be available at:
    • Frontend: http://localhost:4200
    • Backend API: http://localhost:8080

Method 2: Manual Setup (for developers)

Database: Make sure you have a local instance of PostgreSQL running and update the credentials in the booked.backend/src/main/resources/application.yml file.

Backend (Spring Boot):

  1. Navigate to the backend folder:
    cd booked.backend
    
  2. Run the application using Maven:
    ./mvnw spring-boot:run
    

Frontend (Angular):

  1. Navigate to the frontend folder:
    cd booked-frontend
    
  2. Install dependencies:
    npm install
    
  3. Start the development server:
    npm start
    

About

🏨 Booked: A comprehensive full-stack accommodation booking platform built with Spring Boot, Angular 21, and PostgreSQL. Fully containerized with Docker.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors