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.
depot_django/readme.md

37 lines
6.8 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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. За служители и клиенти той изглежда почти еднакво, а за операторите е различен, тъй като те ползват таблети и интерфейса трябва да е по-опростен и удобен за работа с пръст(ръкавици).