All the latest changes are made in deploy_branch
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
kikimor 75b3adfc71 added missing/incomplete permissions to views 7 months ago
.idea added missing/incomplete permissions to views 7 months ago
DepoT development branch created to preserve working deploy project 7 months ago
accounts added missing/incomplete permissions to views 7 months ago
booking added missing/incomplete permissions to views 7 months ago
common added missing/incomplete permissions to views 7 months ago
common_api development branch created to preserve working deploy project 7 months ago
containers added missing/incomplete permissions to views 7 months ago
damages_api development branch created to preserve working deploy project 7 months ago
minio_backend development branch created to preserve working deploy project 7 months ago
original_db development branch created to preserve working deploy project 7 months ago
payments added missing/incomplete permissions to views 7 months ago
preinfo added missing/incomplete permissions to views 7 months ago
static development branch created to preserve working deploy project 7 months ago
staticfiles development branch created to preserve working deploy project 7 months ago
staticfiles_orig development branch created to preserve working deploy project 7 months ago
templates added some filters to templates 7 months ago
unused templates development branch created to preserve working deploy project 7 months ago
.dockerignore development branch created to preserve working deploy project 7 months ago
.env development branch created to preserve working deploy project 7 months ago
Dockerfile.createbuckets development branch created to preserve working deploy project 7 months ago
Dockerfile.debug development branch created to preserve working deploy project 7 months ago
createbuckets_depot.tar development branch created to preserve working deploy project 7 months ago
db.sqlite3 development branch created to preserve working deploy project 7 months ago
depot-web.tar development branch created to preserve working deploy project 7 months ago
depot_image.tar development branch created to preserve working deploy project 7 months ago
docker-compose with volume.yml development branch created to preserve working deploy project 7 months ago
docker-compose-deploy.yml development branch created to preserve working deploy project 7 months ago
docker-compose.dev.yml development branch created to preserve working deploy project 7 months ago
docker-compose.yml switch from ownCloud to minIO 7 months ago
dockerfile development branch created to preserve working deploy project 7 months ago
gemini.cmd - Shortcut.lnk development branch created to preserve working deploy project 7 months ago
init_minio_buckets.sh development branch created to preserve working deploy project 7 months ago
manage.py Add IntelliJ IDEA project configuration files 8 months ago
minio.tar development branch created to preserve working deploy project 7 months ago
miniomc.tar development branch created to preserve working deploy project 7 months ago
populate_database.txt fixed crud list 7 months ago
postgres.tar development branch created to preserve working deploy project 7 months ago
production.env development branch created to preserve working deploy project 7 months ago
readme.md added some filters to templates 7 months ago
requirements.txt development branch created to preserve working deploy project 7 months ago
test_minio_connection.py development branch created to preserve working deploy project 7 months ago
test_minio_upload.py development branch created to preserve working deploy project 7 months ago
web_depot.tar added some filters to templates 7 months ago

readme.md

DepoT е софтуер за управление на контейнерно депо. Това е площадка, в която се съхраняват контейнери на различни фирми, могат да бъдат почиствани, измивани, фумигирани и т.н Софтуерът е предназначен за управление на дейностите в депото, включително приемане и издаване на контейнери, проследяване на техния статус и управление на складовите наличности.

За проекта

В проекта има 3 основни типа потребители:

  • служители
  • клиенти
  • оператори (вход/изход) като има администратор(и) и клиент-администратор. Идеята е на всяка фирма да се даде един акаунт за клиентски администратор и той от своя страна да се грижи за управлението на потребителите във неговата фирма Служителите на депото и клиентите имат различни типове права и достъп до различни функционалности на системата.

Обработката протича по следния начин:

  1. Клиентът изпраща заявка за приемане на контейнер - Preinfo.
  2. Операторът проверява дали има предварителна информация за получаване на контейнера
    • ако да, операторът приема контейнера и го маркира като приет, и при положение, че има видими дефекти по него, прави снимки и ги прикачва към досието на контейнера
  3. Когато фирмата има нужда от определен вид контейнери, те правят заявка (booking), в който описват вида, количеството и дават уникален номер на заявката (booking number). Освен това подават списък с камиони, които ще обработват този booking. По задание на клиента в този списък може да има повтарящи се номера на камиони показващо, че един камион може да получи n на брой контейнера по този букинг.
  4. Шофьорите на камиони могат да видят на външно табло дали има заявки за техния камион за да не се трупат камиони на едно място и да се оптимизира движението в депото.
  5. Когато шофьор отиде на портала, той показва booking number на оператора, който проверява дали има такъв booking и дали е за този камион. Ако всичко е наред, операторът издава контейнерите по заявката.
  6. Когато контейнерите са издадени, те се маркират като експедирани.
  7. На определена дата или период от време, който е зададен от клиента, се прави фактура за извършените услуги. Служител прави справка за неплатени престои на контейнери по фирми, избира няколко (или обикновено всички, но може да има друга уговорка) и създава плащане. Когато се създаде плащане, към него се добавят всички контейнери, които са били маркирани, и се изпраща имейл на клиента с 2 прикачени файла - фактура (сумарно) и детайли за за всички услуги. В писмото се подават 2 линка за плащане на фактурата - един за плащане с карта и един за плащане от сметка в EPay. Когато клиента използва един от линковете за плащане, в системата се получава известие от EPay за платената фактура и това се отразява автоматично в базата данни.

За разработка на проекта се използва Python с Django, като базата данни е PostgreSQL. Проектът е структуриран по модулен начин, което позволява лесно добавяне на нови функционалности и поддръжка на съществуващите.

Инсталация

За пускане на проекта е необходимо да се вдигне контейнер, в който са инсталирани PostgreSQL и minIO. MinIO е S3 съвместим bucket storage, който се използва за съхранение на снимки и други файлове, които се прикачват към контейнерите. Той е идеален за разработка, тъй като може да се използва локално и е съвместим с AWS S3 API. Това става с docker-compose.dev.yml, който е в корена на проекта.

след това трябва да се пуснат миграциите, за да се попълни базата данни с основни номенклатури и други данни, които са необходими за работата на проекта, както и има създаден суперпотребител: username: kikimor password: shushunka1

След стартиране на системата, се отваря landing страницата на DepoT. В нея има малко информация за депото, login бутон и бутон за таблото за шофьорите. При логване, в зависимост от типа на потребителя, се отваря различен dashboard. За служители и клиенти той изглежда почти еднакво, а за операторите е различен, тъй като те ползват таблети и интерфейса трябва да е по-опростен и удобен за работа с пръст(ръкавици).

Deployment

На адрес https://depot.kikimor.com/ е качена продукционна версия на проекта. В repository (https://git.kikimor.com) има нов branch (deploy_branch). В него има docker-compose-deploy.yml,с който се стартират всички контейнери (postgres, minio, createbuckets и самото приложение). Тук в контейнера се прави collectstatic, след което се качват в bucket "static" на minio и се сервират през него.

P.S.Тъй като не остана много време, не знам дали ще успея да обединя двата branch-а, затова последните промени засега ще са само в deploy_branch, който вие няма да можете да стартирате.