Skip to content

phamphihungbk/booking-listing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Booking Listings Project

Demo

Booking List Screenshot

1. Instructions to Run the Project

Prerequisites

  • Docker & Docker Compose installed
  • Node.js (for local frontend development)
  • Python 3.10+ (for local backend development)
  • GNU Make (install with brew install make on macOS)

Run with Docker Compose (Makefile)

  1. Copy .env.example to .env and update environment variables as needed.
  2. Build and start all services:
    make build
    make start
  3. Access services:

2. Code Structure & Folders

booking_listings/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ booking_listings/
β”‚   β”‚   β”œβ”€β”€ app/           # FastAPI app, routers, application logic
β”‚   β”‚   β”œβ”€β”€ db/            # Database config, DAO, models, migrations
β”‚   β”‚   β”œβ”€β”€ static/        # Static files
β”‚   β”‚   β”œβ”€β”€ log.py         # Logging setup
β”‚   β”‚   β”œβ”€β”€ settings.py    # App settings/config for db connection and application config
β”‚   β”‚   └── __main__.py    # FastAPI entrypoint
β”‚   └── pyproject.toml     # Python project config (same as package.json on FE)
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ api/               # API client, DTOs, endpoints for handle BE requests
β”‚   β”œβ”€β”€ app/               # Nuxt app root
β”‚   β”œβ”€β”€ components/        # Vue components custom and resuable (shared) (button, data-table, pagination, etc.)
β”‚   β”œβ”€β”€ layouts/           # Nuxt layouts
β”‚   β”œβ”€β”€ pages/             # Nuxt pages
β”‚   β”œβ”€β”€ plugins/           # Nuxt plugins to setup global usage like handle api request to BE
β”‚   β”œβ”€β”€ public/            # Static assets (robots.txt, images, etc.)
β”‚   β”œβ”€β”€ types/             # TypeScript global types
β”‚   β”œβ”€β”€ utils/             # Utility functions for global usage
β”‚   β”œβ”€β”€ package.json       # Frontend dependencies & scripts
β”‚   └── nuxt.config.ts     # Nuxt config
β”œβ”€β”€ environment/
β”‚   β”œβ”€β”€ db/                # DB Dockerfile
β”‚   β”œβ”€β”€ node/              # Node/Nuxt Dockerfile
β”‚   └── python/            # Python/FastAPI Dockerfile
β”œβ”€β”€ docker-compose.yml     # Multi-service orchestration
β”œβ”€β”€ Makefile               # Common dev commands
└── README.md              # Project documentation

3. Things to Improve

  • Improve error handling and validation in backend APIs and frontend
  • Use vee-validate library for more advanced form validation on FE
  • Create some individual component for button or card to make usable
  • Can use long polling or websocket for more real time update

About

πŸ›Œ Full-stack hotel booking app with Vue.js, Typescript and Python (FastAPI), containerized via Docker and followed RESTful principles and clean architecture

Resources

Stars

Watchers

Forks

Contributors