Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Информационна система за ИАРА

Уеб приложение за управление на основни процеси, свързани с Изпълнителната агенция по рибарство и аквакултури.

Системата включва регистри за риболовни кораби, разрешителни, билети за любителски риболов, улов, инспекции и потребители с различни роли.

Използвани технологии

  • Python
  • Flask
  • MySQL
  • MySQL Workbench
  • React.js
  • HTML
  • CSS
  • GitHub

Основна идея

Проектът представлява начална версия на информационна система за ИАРА.

Чрез нея различни потребители могат да работят със системата според своята роля. Администраторът има пълен достъп, инспекторът може да извършва проверки, а рибарят може да заявява билет и да регистрира собствен улов.

Системата позволява:

  • вход с потребителско име и парола
  • различно меню според ролята
  • преглед на данни от база данни
  • добавяне на записи
  • редактиране на записи
  • изтриване на записи
  • търсене в таблиците
  • визуално показване на статуси чрез цветни етикети

Снимки от проекта

Вход в системата

Login page

Табло

Dashboard

Регистър на кораби

Ships page

Разрешителни

Permits page

Билети

Tickets page

Инспекции

Inspections page

Улов

Catches page

Профил на рибар

Ribar profile

Потребителски роли

Администратор

Администраторът има пълен достъп до системата.

Той може да управлява:

  • кораби
  • разрешителни
  • билети
  • инспекции
  • улов
  • потребители

Инспектор

Инспекторът има достъп до справки и проверки.

Той може да:

  • преглежда кораби
  • преглежда разрешителни
  • преглежда билети
  • преглежда улов
  • добавя, редактира и изтрива инспекции

Рибар

Рибарят има личен профил.

Той може да:

  • преглежда своя билет
  • заявява билет
  • редактира или изтрива своя билет
  • регистрира собствен улов
  • редактира или изтрива собствен улов

Тестови акаунти

Потребител Парола Роля
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

1. Стартиране на MySQL

Отворете MySQL Workbench.

Отворете файла:

database/schema.sql

Стартирайте целия SQL код с бутона със светкавица.

След това проверете дали е създадена базата:

iara_system

2. Настройка на backend

В папка 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.

3. Стартиране на backend

В терминал:

cd backend
venv\Scripts\activate
py app.py

Ако виртуалната среда още не е създадена:

cd backend
py -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
py app.py

Backend частта работи на:

http://localhost:5000

Тестов API адрес:

http://localhost:5000/api/health

4. Стартиране на frontend

Във втори терминал:

cd frontend
npm install
npm run dev

Frontend частта работи на:

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 бележки за представяне

Бележки

Проектът е учебен и е направен с цел да бъде разбираем.

Паролите са записани в обикновен текст, защото проектът е локален и учебен. В реална система паролите трябва да се криптират.

Системата използва опростена проверка на роли. В реална система трябва да се използват сесии или токени.

Възможни бъдещи подобрения

  • по-сигурна регистрация и вход
  • криптирани пароли
  • повече филтри
  • експорт на справки
  • отделни таблици за магазини и камиони
  • по-подробна проследимост на риба
  • мобилна версия за инспектори
  • повече статистики
  • качване на документи към билети и разрешителни

About

iara-gdbpzn-RFHristova23 created by GitHub Classroom

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages