Coder Social home page Coder Social logo

aerosync_manager's Introduction

AeroSync Manager

In today’s interconnected world, the aviation industry plays a vital role in global travel, the need for our software translates through the following:

  • Sharing flight information in an accurate and timely manner.
  • Enhancing passengers’ airport experience.
  • Facilitating travel
  • and much more!

Features

  1. live updates

The website updates information automatically without manual page refreshes. This is essential for displaying up-to-date, reliable data, especially for time-sensitive content. The Supabase JS client facilitates real-time updates by monitoring database changes, enhancing the site's interactivity and responsiveness. On the backend, since the Supabase Python client doesn't support real-time listening, an alternative approach using a socket connection to the database was implemented to track updates, particularly in flight data.

  1. Flight Tracking

Users have the option to track any flight to stay informed about changes or cancellations. The system uses Pika, a direct implementation of the Advanced Message Queuing Protocol (AMQP), to efficiently send emails to recipients without heavily using system resources.

  1. password-free login

A passwordless sign-in method has been introduced, allowing users to access the site either through their email or Google sign-in. For both new account creation and existing account access, a one-time-use verification link is sent to the registered email, streamlining the login or account verification process.

  1. SMTP Server

Due to Supabase's email server limitation, "Brevo" email service provider (configurable) is being used allowing us to offer 9,000 verification emails every month, for free, forever.

  1. Security

Passwordless sign-in methods enhance security compared to hashed password systems. Row Level Security Policies have been activated in the database for added protection. Data validation occurs on the backend, and a rate limit has been set for verification emails to guard against potential system-overloading attacks.

Other features include:

  • Currency converter
  • Weather information
  • Booking flights, hotels and parking slots
  • Showcasing popular events and deals

Improvements to be made

  • Work on handling errors more gracefully on the front end and keep the system working as best as possible.
  • Validate the session every time the user uses the system.
  • Validate the http request sender
  • Handle cases where http requests fail to get sent to the server.
  • Implement CSRF Tokens.
  • Create friendly interfaces for the admin users to handle the data.
  • Refactor the code into modules making it more possible to host such system on Vercel.

Limitations

  • Hard to host for free since the system uses multithreading in the backend(for the flask app, the email service, and the socket connection) and socket connections to listen to database changes.

Frameworks & Libraries

Flask, Pika, Supabase, Realtime, and Postgrest.

Installation

  1. Clone this repo
  2. pip install -r requirements.txt
  3. Download RabbitMQ from bbitmq.com/install-windows.html#installer and make sure the service is running
  4. Download Erlang from https://www.erlang.org/downloads
  5. Run the app.py using the terminal
  6. Enjoy!

aerosync_manager's People

Contributors

markhallak avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.