Skip to content

MVPAV/FlyDreamAir

Repository files navigation

[![Contributors][contributors-shield]][contributors-url] [![Forks][forks-shield]][forks-url] [![Stargazers][stars-shield]][stars-url] [![Issues][issues-shield]][issues-url] [![MIT License][license-shield]][license-url]


Landing Page Logo

FlyDreamAir

Redefining the Flight Experience

View Demo · Report Bug · Request Feature

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

About The Project

Conventional flight ticket ordering through airports and letters became a thing of the past long ago. In our current modern world, the flight system has rapidly advanced and replaced the obsolete manual bookings with web-based technology system, which allows clients to easily organise their complete travel experiences right on the palm of their hand.


Therefore, it's critically imperative for any flight management system to employ a systematic application to operate the process of handling and managing bookings online. However, the intended system bears a significant complexity that might Add an overhead that is not negligible.


This project is created as a comprehensive solution to develop a flight management system, including an extensive range of features:

  • Flight finding, selecting, and ordering
  • Effortlessly complete the required information in a straightforward manner.
  • Authentication and authorisation enabled with NextAuth
  • In-built payment procedures handler, making interacting with 3rd-party clients easier than ever
  • Email services with Postmark substantially enhance users' seamless personalisation.
  • Pre-defined Postgres database schemas, capable of rapidly querying and mutating the data systematically
  • Responsive to every device screen size, applicable to every device
  • Completely type safe and type annotated by default with Prisma and tRPC, ensuring a seamless developer experience
  • Administrative site with access level for unchallenged supervision

back to top

Built With

Next JS Prisma Postgres Google Cloud tRPC ESLint TypeScript

back to top

Getting Started

Prerequisites

Install requirements

npm i

Migrating database

Define your credentials URL in the .env file as DATABASE_URL, and Prisma will be able to locate and migrate the programme schema into the DB. Most of the relational database systems are supported, including PostgreSQL, MySQL, and SQL Server, but parameters may have to be modified in the Prisma configuration. You can find it at prisma/schema.prisma

To merge the models into your database schema, simply run:

npx prisma migrate dev

Authentication

NextAuth required generating a local secret key before using it to ensure a secure process between JWT communications. Luckily, the libraries make it easy for us to work on the local by running a single line.

npx auth

Which will generate a random key at your .env.local file. You are free to use it in your own development server.

However, deploying NextAuth required more than just that, since exposing the system to the public introduced consequential risk to the system. Before production deployment, please refer to NextAuth Deployment Guide here.

Email Service

We use Postmark as the client for our email service. Even though sending mail is optional in the development system, it's absolutely essential to have an email client in our real-world system. You can simply set this up to mirror the production email workflow by defining your POSTMARK_CLIENT environment variable.

To get a POSTMARK_CLIENT key, you will have to sign up for Postmark and undergo their verification process. This shouldn't take a long time to get it up and running.

Local Storage

Not an imperative use case, but storing users' state in the local storage is an amazing enhancement to the workflow. We use Zustland for your global state management, but ensure the development server has access to your browser's local storage.

Running the application

Simply run

npm run dev

To deploy the application on your localhost

Building the application

npm run build

The software uses a set of linting and code quality checker tools, which might require you to resolve the issues before generating the final production build to ensure optimisation and maximum efficiency.

back to top

Usage

Landing Page

The application is presented with an intuitive interface, which can be explored further at our domain FlyDreamAir.it.com

Landing Page

back to top

Roadmap

  • Bookings and Tickets Management
  • Email Client
  • Meals and Baggages Add-on Services
  • Account Management

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".

  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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5