Skip to content

spaghetti-lover/Qairlines

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

QAirline

High Performance Flight Booking Management System
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact

About The Project

logo-white

Screenshot 2024-12-22 024054

What is QAirline?

QAirline is an online flight booking platform that helps users easily search, compare, and book airline tickets. With a user-friendly interface and smart features, the website offers a fast, convenient, and secure booking experience. Demo link: https://www.youtube.com/watch?v=EIDpxah3Ugw&t=53s

Visit the official website here

Features

  • Flight Search: Search for flights by departure, destination, travel date, and number of passengers.

  • Quick Booking: Simple booking process.

  • Booking Management: Review your booking details and statuses.

  • Online Payment: Integrated with the Stripe payment platform.

(back to top)

Built With

  • Next
  • Golang
  • Postgres
  • Stripe
  • Redis

(back to top)

Getting Started

Prerequisites

Installation

Clone the repo

git clone https://github.com/spaghetti-lover/Qairlines.git

Backend

  1. Go to backend folder
cd backend
  1. Add environment variable in app.env
APP_EVN=production //can use development for debugging with logs

MAIL_SENDER_NAME="Qairlines Support"
MAIL_SENDER_ADDRESS = "your email"
MAIL_SENDER_PASSWORD = "your email password"

REDIS_ADDRESS=0.0.0.0:6379
DB_DRIVER = "postgres"
DB_SOURCE = "postgresql://root:secret@localhost:5432/qairline?sslmode=disable"
SERVER_ADDRESS_PORT = :8080
TOKEN_SYMMETRIC_KEY=12345678901234567890123456789012
ACCESS_TOKEN_DURATION=7h

RATE_LIMITER_REQUEST_SEC=5
RATE_LIMITER_REQUEST_BURST=10

STRIPE_SECRET_KEY=<Stripe secret key>
STRIPE_WEBHOOK_SECRET=<Stripe webhook secret>
  1. Start PostgreSQL service
make postgres
  1. Start Redis service
make redis
  1. Setup database
make createdb
make migrateup
  1. Test (optional)
make test
  1. Run server
make server

Frontend

npm install
npm run dev

(back to top)

Usage

For more examples, you can the read Documentation

Screenshot 2024-12-22 024234 image image image image image image image image image image

(back to top)

Roadmap

  • Add MINIO for image management
  • Change booking feature to work with concurrent requests
  • Add BookingHistory

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Top contributors:

contrib.rocks image

License

Distributed under the project_license. See LICENSE for more information.

(back to top)

Contact

Phung Duc Anh - @facebook - [email protected]

Project Link: https://github.com/spaghetti-lover/Qairlines

(back to top)

About

Flight Booking Management System

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •