Coder Social home page Coder Social logo

skypt's Introduction

What is this

Sky Package Tracking (skypt) is an idea to improve the experience of Sky Staff when receiving packages.

The objective is:

  • Easier and faster package registration for the security guard.
  • Package arrival notification for the recipient.

How it should work

  1. Package arrives.
  2. Security Guard logs in to the application.
  3. Security Guard takes photo in application.
  4. Security Guard fills in the recipient name.
  5. Security Guard confirms Package Registration.
  6. Sky Staffer receives notification e-mail (optionally slack).
  7. Sky Staffer goes to the Security Guard.
  8. Sky Staffer logs in to the application.
  9. Sky Staffer marks the package as Retrieve.
  10. Security Guard checks Package Retrieve List, compares Package Photo against package and delivers the package to Sky Staffer.

TODO

  • SSL @ramalhais-sky
  • Valid SSL Certificate @ramalhais-sky
  • Microsoft/Azure sky.uk authentication @ramalhais-sky
  • Photo Capture
    • Web @ramalhais-sky
    • Android
    • iOS
  • Upload foto
    • Backend
    • Web
    • Firefox @ramalhais-sky
    • Android
    • iOS
  • Register package
    • Backend
    • Web
    • Android
    • iOS
  • List user packages
    • Backend
    • Web
    • Android
    • iOS
  • Security Guard Login
    • Backend
    • Web
    • Android
    • iOS
  • Authentication: Register package
  • Authentication: List user packages
  • Android App @sky-philipalmeida
  • iOS App @dfloureiro
  • App notification
    • Backend
    • Web
    • Android
    • iOS
  • Powerpoint Presentation/Demo

Nice to Have

  • App running on Docker
  • DB running on Docker
  • App running on IMP/PIQ kubernetes
  • DB running on IMP/PIQ kubernetes
  • IMP/PIQ DNS/Ingress/F5
  • e-mail notification to user

Ideas

  • Sky Staffer: add tracking number of an expected package
  • Security Guard: List expected tracking numbers and select to register
  • Sky Staffer: add slack username and receive slack notification
  • Allow user to add tracking number using a bot in slack

Crazy Ideas

Notes

Markdown cheat-sheet

https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet

Install latest python

https://www.python.org/downloads/

Upgrade PIP

python -m pip install --upgrade pip

MySQL

pip install mysqlclient

settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
            'read_default_file': 'my.cnf',
        },
        'NAME': 'skypt',
        'HOST': os.getenv('MYSQL_HOST'),
        'USER': os.getenv('MYSQL_USER'),
        'PASSWORD': os.getenv('MYSQL_PASSWORD'),
    }
}
TIME_ZONE = 'Europe/Lisbon'
export MYSQL_DB="skypt"
export MYSQL_HOST="localhost"
export MYSQL_USER="skypt"
export MYSQL_PASSWORD="XXX"
create database skypt;
create user 'skypt'@'%' identified by 'XXX';
grant all privileges on skypt.* to 'skypt'@'%';

Install Django

python -m pip install Django

python
>>> import django
>>> print(django.get_version())
3.0

Create Django Project and App

django-admin startproject skypt

cd skypt
python manage.py startapp package_tracking

Setup Django Database

python manage.py makemigrations
python manage.py migrate

Create Superuser

python manage.py createsuperuser

HTML photo capture

https://developers.google.com/web/fundamentals/media/capturing-images

Microsoft/Azure Authentication (SSO)

pip install django_microsoft_auth

Create app registration in azure

Django Static files

https://docs.djangoproject.com/en/3.0/howto/static-files/

Django SSL

pip install django-sslserver
INSTALLED_APPS = (...
"sslserver",
...
)

SSL Certificate (letsencrypt)

Start HTTPS server with certificate

python manage.py runsslserver --certificate ../crt --key ../key 0.0.0.0:443

Start HTTPS server with self-signed certificate

python manage.py runsslserver 0.0.0.0:443

Start HTTP server (no HTTPS/SSL)

python manage.py runserver 0.0.0.0:80

skypt's People

Contributors

ramalhais-sky avatar sky-philipalmeida avatar

Watchers

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