seacargos

0

Описание

Sea cargos aggregator web application.

Языки

  • Python61%
  • HTML26,9%
  • CSS11,8%
  • Dockerfile0,3%
README.md

Seacargos

Sea cargos aggregator web application. Current app version is being developed to aggregate ONE (Ocean Network Express) container shippings.

Technology stack

  • Python 3.10
  • Flask 2.2
  • WTForms 3.0
  • Pymongo 4.3
  • Gunicorn 20.1
  • Nginx 1.21.3
  • MongoDB 5.0
  • Mongo-express

Web application

Seacargos web application is created with Flask framework and may be helpfull in tracking container shippings. It has simple user and administrator web interfaces. Python ETL scripts get and update data from container shipping web sites and store them in MongoDB database. Python ETL scripts can be run by user manually via web interface and/or scheduled with any simple tool like Linux crontab.

Web application infrastructure

The web application is designed to be deployed in four Docker containers:

  • monogo - MongoDB container
  • mongo-express - web interface container to access database
  • wep - container with seacargos web application
  • nginx - container with nginx server

How to install and deploy

Docker should be already installed on local host before deployment.

  1. Clone the repository.
  1. Create
    .env
    file with secrets in projects
    infra/
    directory. Replace placeholders
    <...>
    with your secret data. Two first users will be created automatically during database initialization: simple user and site administrator. Please use their credentials for first login.
  1. Deploy

Finally the web application is ready for use

http://127.0.0.1 - web application login page

http://127.0.0.1:8081 - mongo-express database web interface

How to stop containers

Security notice

The above instructions how to install and deploy the project have only demonstration purpose and can be used on local host.

If you would like to deploy the project on a web server, please read the documentation.

Mongo-express should only be used for development purpose as database web interface. It should be removed from

docker-compose.yaml
in production.