Уеб приложение за управление на основни процеси, свързани с Изпълнителната агенция по рибарство и аквакултури.
Системата включва регистри за риболовни кораби, разрешителни, билети за любителски риболов, улов, инспекции и потребители с различни роли.
- Python
- Flask
- MySQL
- MySQL Workbench
- React.js
- HTML
- CSS
- GitHub
Проектът представлява начална версия на информационна система за ИАРА.
Чрез нея различни потребители могат да работят със системата според своята роля. Администраторът има пълен достъп, инспекторът може да извършва проверки, а рибарят може да заявява билет и да регистрира собствен улов.
Системата позволява:
- вход с потребителско име и парола
- различно меню според ролята
- преглед на данни от база данни
- добавяне на записи
- редактиране на записи
- изтриване на записи
- търсене в таблиците
- визуално показване на статуси чрез цветни етикети
Администраторът има пълен достъп до системата.
Той може да управлява:
- кораби
- разрешителни
- билети
- инспекции
- улов
- потребители
Инспекторът има достъп до справки и проверки.
Той може да:
- преглежда кораби
- преглежда разрешителни
- преглежда билети
- преглежда улов
- добавя, редактира и изтрива инспекции
Рибарят има личен профил.
Той може да:
- преглежда своя билет
- заявява билет
- редактира или изтрива своя билет
- регистрира собствен улов
- редактира или изтрива собствен улов
| Потребител | Парола | Роля |
|---|---|---|
| admin | 1234 | Администратор |
| inspector | 1234 | Инспектор |
| ribar | 1234 | Рибар |
iara-gdbpzn-RFHristova23/
├── backend/
│ ├── app.py
│ ├── requirements.txt
│ ├── .env.example
│ └── .env
├── database/
│ └── schema.sql
├── docs/
│ ├── screenshots/
│ │ ├── login.png
│ │ ├── dashboard.png
│ │ ├── ships.png
│ │ ├── permits.png
│ │ ├── tickets.png
│ │ ├── inspections.png
│ │ ├── catches.png
│ │ └── ribar-profile.png
│ ├── ER_DIAGRAM.md
│ ├── PROJECT_DESCRIPTION_BG.md
│ └── PRESENTATION_NOTES.md
├── frontend/
│ ├── index.html
│ ├── package.json
│ └── src/
│ ├── main.jsx
│ └── style.css
├── README.md
├── .gitignore
└── .gitattributes
Името на базата данни е:
iara_system
Основни таблици:
| Таблица | Описание |
|---|---|
| users | потребители и роли |
| ships | риболовни кораби |
| permits | разрешителни за риболов |
| tickets | билети за любителски риболов |
| catches | регистриран улов |
| inspections | инспекции и проверки |
ER диаграмата се намира във файла:
docs/ER_DIAGRAM.md
Проектът има три основни части:
1. MySQL база данни
2. Flask backend
3. React frontend
Отворете MySQL Workbench.
Отворете файла:
database/schema.sql
Стартирайте целия SQL код с бутона със светкавица.
След това проверете дали е създадена базата:
iara_system
В папка backend трябва да има .env файл.
Пример:
DB_HOST=127.0.0.1
DB_USER=root
DB_PASSWORD=your_mysql_password
DB_NAME=iara_system
DB_PORT=3306
FRONTEND_URL=http://localhost:5173На мястото на your_mysql_password се пише паролата за MySQL.
В терминал:
cd backend
venv\Scripts\activate
py app.pyАко виртуалната среда още не е създадена:
cd backend
py -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
py app.pyBackend частта работи на:
http://localhost:5000
Тестов API адрес:
http://localhost:5000/api/health
Във втори терминал:
cd frontend
npm install
npm run devFrontend частта работи на:
http://localhost:5173
Показва основна информация и бързи връзки според ролята на потребителя.
Регистър на риболовни кораби с данни за номер, собственик, капитан и технически параметри.
Регистър на разрешителни за стопански риболов. Разрешителното е свързано с кораб, титуляр, валидност, статус и риболовни уреди.
Билети за любителски риболов.
Цената зависи от типа лице:
| Тип | Цена |
|---|---|
| над 14 години | 25 |
| под 14 години | 5 |
| пенсионер | 10 |
| инвалид | 0 |
При билет за инвалид се изисква ТЕЛК номер.
Регистър за уловена риба, количество, място и дестинация.
Тази страница помага за проследяване на улова.
Регистър на проверки от инспектори.
Инспекция може да бъде за:
- кораб
- магазин
- камион
При нарушение може да се въведе глоба.
Страница само за администратор.
Използва се за управление на потребители и роли.
В проекта са реализирани:
- login страница
- ролеви достъп
- dashboard
- работа с MySQL база данни
- добавяне на записи
- редактиране на записи
- изтриване на записи
- търсене в таблиците
- меню с три точки за действия
- цветни статуси
- адаптивен дизайн
Табло
Кораби
Разрешителни
Билети
Инспекции
Улов
Потребители
Табло
Кораби
Разрешителни
Билети
Инспекции
Улов
Табло
Моят билет
Моят улов
Допълнителната документация се намира в папка docs.
| Файл | Описание |
|---|---|
| docs/ER_DIAGRAM.md | ER диаграма и обяснение на таблиците |
| docs/PROJECT_DESCRIPTION_BG.md | описание на проекта на български |
| docs/PRESENTATION_NOTES.md | бележки за представяне |
Проектът е учебен и е направен с цел да бъде разбираем.
Паролите са записани в обикновен текст, защото проектът е локален и учебен. В реална система паролите трябва да се криптират.
Системата използва опростена проверка на роли. В реална система трябва да се използват сесии или токени.
- по-сигурна регистрация и вход
- криптирани пароли
- повече филтри
- експорт на справки
- отделни таблици за магазини и камиони
- по-подробна проследимост на риба
- мобилна версия за инспектори
- повече статистики
- качване на документи към билети и разрешителни







