Giter Site home page Giter Site logo

vkpro-forks / checkpointmanager Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 98.81 MB

Backend for Pass management in restricted areas application

Home Page: https://checkpoint-manager.ru/swagger-ui/index.html

Shell 1.09% Java 98.40% HTML 0.21% Dockerfile 0.09% TSQL 0.22%

checkpointmanager's Introduction

GitHub Actions Workflow Status Codacy Badge GitHub top language GitHub commit activity GitHub last commit Github Created At

Логотип Checkpoint Manager

Веб-сервис, предназначенный для контроля и управления доступом на охраняемые территории, такие как коттеджные поселки, жилые комплексы, производственные предприятия, деловые центры и различные режимные объекты.

📚 Оглавление

🌟 Функции

  • Администрирование территорий и расположенных на них контрольно-пропускных пунктов (постов охраны)
  • Прикрепление пользователей к одной или нескольким территориям
  • Создание пропусков: Пользователи сервиса могут легко создавать временные или постоянные пропуска для машин и посетителей с указанием времени их действия, а также создавать новые пропуска на основе уже существующих, отмечать пропуска избранными для быстрого доступа
  • Контроль режима: пропуска используются охраной территории на КПП для контроля доступа при въезде/выезде и входе/выходе
  • Интеграция: в перспективе проект предусматривает возможность интеграции с существующими системами видеонаблюдения и контроля доступа на объектах, может интегрироваться с другими rest-сервисами
  • Масштабируемость: сервис подходит как для малых, так и для крупных объектов с несколькими КПП

💼 Преимущества

  • Эффективность и Безопасность: Ускоряет процесс проверки на КПП и повышает уровень безопасности территории
  • Удобство для Пользователей: Простой и интуитивно понятный интерфейс
  • Гибкость Настройки: Возможность адаптации под специфические требования различных объектов
  • Безопасность: Обеспечение конфиденциальности информации

🎯 Целевая аудитория

  • Администрация объектов: Компании, управляющие территориями
  • Охранные предприятия: Обеспечивающие охрану и режим посещения
  • Жители и предприниматели: Владельцы и арендаторы недвижимости
  • Посетители и водители: Лица, въезжающие на охраняемые территории

💰 Монетизация

Модель монетизации включает подписку для объектов на использование сервиса, а также предоставление дополнительных услуг, таких как настройка системы и техподдержка

📖 Как пользоваться

  1. Перейти на сайт Checkpoint Manager.

  2. Ввод электронной почты:

  • На стартовой странице введи свою электронную почту или выбери один из готовых аккаунтов, для обзора всего функционала приложения, в зависимости от роли пользователя
Ввод электронной почты           Выбор готового акка
  1. Определение статуса Пользователя:
  • Система проверит, зарегистрирован ли уже этот email
  • Если электронная почта уже есть в базе данных, откроется страница входа
  • Если ты новый пользователь, откроется страница регистрации
  1. Вход или Регистрация:
  • Для зарегестрированных пользователей пользователей: достаточно ввести пароль для входа
Форма входа
  • Для новых пользователей: Заполни форму регистрации. Это быстро и просто – нужно всего лишь ввести несколько основных данных о себе. После регистрации тебе будет отправлено письмо со ссылкой для подтверждения твоей электронной почты
Форма регистрации     Письмо
  • После входа в систему перед тобой откроется главный интерфейс Checkpoint Manager
Главный интерфейс Checkpoint Manager
  • Если ты только зарегистрировался, то управляющий охраняемым объектом должен привязать твой аккаунт к соответствующей территории. Как только это произойдет, ты сможешь использовать сервис в полной мере!
  1. Основной пользовательский функционал:
  • Гибкость настройки пропусков: Пользователи Checkpoint Manager обладают широкими возможностями для настройки пропусков в соответствии с их уникальными потребностями. Вот некоторые из ключевых функций:
    • Выбор Территории: Если пользователь связан с несколькими территориями, пропуск можно настроить так, чтобы он был действителен для конкретной локации
    • Тип Пропуска: Предоставляется возможность выбора между разовыми и постоянными пропусками, что позволяет адаптировать доступ в соответствии с требованиями безопасности и удобства
    • Категория Посетителя: Опция выбора пропуска для пешеходов или автомобилей, что упрощает управление потоками посетителей и транспорта
    • Персонализация данных: Возможность заполнения детальной информации о посетителе, обеспечивая эффективный контроль доступа
Создание пропуска
  • После создания, каждый пропуск обогащается дополнительными деталями и функциональными возможностями, что делает управление доступом еще более эффективным и удобным:
    • Избранный Пропуск: Пользователи могут отмечать часто используемые или важные пропуска. Эта функция полезна для фильрации и быстрого доступа
    • Дата Создания: Для каждого пропуска отображается дата его создания. Это помогает вести учет и анализировать использование пропусков во времени
    • Просмотр Событий: Пользователи имеют возможность просматривать все события, связанные с конкретным пропуском, что обеспечивает дополнительный уровень контроля и понимания активности на территории
О пропуске

🔄 Жизненный цикл пропуска

В нашей системе каждый пропуск проходит через несколько важных стадий своего жизненного цикла. Это помогает не только в обеспечении безопасности и удобства использования, но и даёт пользователям больше контроля над процессом управления доступом. Каждый цвет и форма на схеме соответствуют определенному статусу пропуска:

  • Активный (желтый): действующий пропуск, который можно использовать
  • Отложенный (оранжевый): пропуск, время действия которого еще не началось (станет активным позже)
  • Отмененный (голубой): неиспользованный пропуск, который отменили
  • Устаревший (серый): неиспользованный пропуск, время действия которого истекло
  • Нет выезда (красный): ставший неактивным пропуск, последнее пересечение по которому зафиксировано на въезд/вход (т.е. объект остался на территории)
  • Выполненный (зеленый): ставший неактивным пропуск, последнее пересечение по которому зафиксировано на выезд/выход
Жизненный цикл пропуска

🤝 Помощь и поддержка

Если у тебя возникли вопросы, нужна помощь, или ты хочешь предложить сотрудничество, мы всегда здесь, чтобы помочь тебе:

  • Электронная Почта: Наша команда поддержки всегда на связи и готова ответить на любые твои вопросы. Напиши нам на [email protected] – мы постараемся ответить как можно скорее
  • Социальные Сети: Следи за нами в социальных сетях, чтобы быть в курсе последних новостей и обновлений

Мы гордимся своим проектом и всегда рады предоставить качественную поддержку нашим пользователям и партнерам

🚀 Технологии проекта

Backend

Основные Компоненты

  • Spring Boot: Ядро приложения, быстрый старт и управление
  • Spring Data JPA: Упрощает работу с базами данных, используя Java Persistence API
  • Spring Boot Starter Mail: Отправка электронной почты из приложения
  • Springdoc OpenAPI: Автоматическая документация API

База Данных и Миграции

  • PostgreSQL: Используется как основная система управления базами данных
  • Liquibase: Управляет версиями базы данных, позволяя безопасно вносить изменения

Безопасность

  • Spring Security: Защита приложения, аутентификация и авторизация. Способна интегрироваться с широким спектром аутентификационных методов, включая формы, LDAP, JWT и др. Обеспечивает защиту от распространенных угроз безопасности, таких как CSRF (Cross-Site Request Forgery) и сессионные атаки
  • JSON Web Tokens (JWT): Технология, позволяющая безопасно передавать информацию между сторонами в виде JSON-объектов

Утилиты и Вспомогательные Библиотеки

  • Jasypt Spring Boot Starter: Шифрование конфиденциальных данных приложения
  • ModelMapper: Преобразование объектов между слоями
  • Gson & Jackson Databind: Работа с JSON
  • Jedis: Java клиент для Redis

Разработка и Тестирование

  • Lombok: Уменьшение шаблонного кода
  • JUnit & Hamcrest: Модульное тестирование и сложные условия проверки
  • Testcontainers & Instancio: Интеграционное тестирование с Docker и создание тестовых данных

Кеширование и Валидация

  • Spring Boot Starter Cache: Поддержка кеширования в приложении для улучшения производительности
  • Spring Boot Starter Data Redis: Интеграция Redis для кеширования
  • Spring Boot Starter Validation : Валидация данных в приложении

Эти технологии обеспечивают надежность, безопасность и масштабируемость нашего приложения

Frontend

Основные технологии

  • HTML5: Верстка страниц и компонентов приложения
  • CSS3: Стилизация страниц и компонентов приложения
  • JavaScript ES6: Создание логики работы приложения
  • React.js: Обеспечение выполнения принципа "single-page application", создает объемное интерактивное приложение из инкапсулированных компонентов. Обеспечивает предсйказуемость поведения кода благодаря декларативному подходу

Обеспечение корректной работы приложения

  • Node Package Manager: Пакетный менеджер приложения
  • Webpack: Сборщик модулей, при запуске обрабатывает модули, строит между ними граф зависимостей, на основе графа генерирует единый файл.
  • React Router DOM: Модуль узла, обеспечивает маршрутизацию между страницами приложения
  • REST API: Взаимодействие с серверной частью приложения через протокол HTTP
  • CSS Modules: Обеспечение изоляции стилей в отдельных компонентов за счет генерации уникальных классов

Кеширование данных и управление состоянием в приложении

  • Redux Toolkit: Централизованное управление состояниями приложения.
  • RTK Query: Формирование запросов к API, кеширование и автоматическое обновление полученных данных.

Качество написания кода

  • ESLint: Анализ и стандартизация написанного кода приложения
  • Prettier: Обеспечение единообразия форматирования кода

Утилиты и Вспомогательные Библиотеки

  • date-fns: Форматирование дат
  • react-toastify: Добавление всплывающих элементов на странице приложения в ответ на действия пользователя
  • react-input-mask: Cоздание масок для input

QA

  • Postman: тестирование API
  • pgAdmin: тестирование и контроль информации в БД
  • ChromeDevTools: отслеживание запросов, тестирование фронта
  • Bugnet: подстановка данных при исследовательском тестировании
  • PerfectPixel: тестирование соответствия верстки макетам

Design

  • Figma: проектирование интерфейса и составление макетов экранных форм

👥 Наша команда

Наша команда представляет собой прекрасное сочетание профессионалов в области бэкенда, фронтенда, качества (QA), дизайна и управления проектами. Каждый член команды был тщательно подобран с учетом технической экспертизы, навыков межличностного общения, а также стремления к развитию и эффективному командному взаимодействию, что обеспечило комфортную и дружелюбную атмосферу на всех наших встречах, а также способствовало быстрому и точному решению задач 🚀

Обращаясь к любому из участников команды, вы можете быть уверены, что это ответственный специалист и отличный командный игрок:

Команда Имя Телеграм Гитхаб
Backend Дмитрий Telegram GitHub
Backend Алексей Telegram GitHub
Backend Александра Telegram GitHub
Backend Николай Telegram GitHub
Frontend Евгений Telegram GitHub
Frontend Софья Telegram GitHub
Frontend Диана Telegram GitHub
QA Алексей Telegram GitHub
QA Александр Telegram
PM, Design Сергей Telegram

checkpointmanager's People

Contributors

veselovnd88 avatar x3imal avatar fifimova avatar ldv236 avatar rnd-mi avatar cardinalnsk avatar svilel98 avatar guritch avatar oleg-olegi avatar toralivi avatar alexeyfef avatar pipolapopala avatar yakovlevass avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.