Есть люди с органичными возможностями, которым сложно сделать что-то самостоятельно не зависимо от возраста. Кто-то не может ходить, у кого-то ног нет, а кто-то из-за какой-то болезни не может встать и пойти купить то что ему нужно. Таких людей не мало и у многих либо работающие родственники, которые уходят утром на работу и ночу возвращаются, чтобы прокормить их, а у других вовсе и нет родственников. Но им в любой момент может понадобиться помощь, но рядом либо никого не будет, либо они будут не в состоянии сделать что-то. Например: Пойти в магазин, купить нужную одежду, выгулять собаку и ткд.
Поэтому я хочу сделать приложение "help the nearest needy" которое, будет решать как раз эту проблему. На начальном этапе там будет 2 вида пользователя нуждающийся и волонтер. Оба должны будут подтверждать свою идентичность через специальный сканер, токен крупных организаций либо через что-то(придумаю) для безопасности. Нуждающийся человек выкладывает его нужду, и оно рассчитывается на ближайший радиус(по дефолту макс. 1-5 км), волонтёр видит новую какую-то помощь, может принять, а может отказаться. У волонтёров будет рейтинг, они выполняют эту работу бесплатно(для благотворительности). Волонтёр у которого концу месяца достаточно хороший рейтинг будет получать какие-то призы, путёвки либо поощрительное что-то. Это основная идея и проблема которая решается. Но позже можно масштабировать идею и добавить в приложение какие-то организации либо благотворительные фонды, которым нужны бывают волонтеры и могут хорошо отблагодарить волонтеров за их работу либо сделать хороший вклад в благотворительность.
- Сервис для хранения данных, реляционная бд - postgresql (пока что из того что смотрел Amazon RDS)
- Сервис для авторизации, аутентификации безопасности (из тех сервисов то что успел посмотреть (Amazon Cognito или AWS identity and access Management)
- Сервис для контейнеризации (Amazon elasctic container | Copilot | App2Container | ECS | ECR | Amplify)
Я очень сильно хотел выбрать AWS, но к сожалению он дорогой и в РФ если у тебя изначально не был там аккаунт, ты физически не сможешь там зарегистрироваться и привязать банковскую карту. Поэтому решил выбрать Yandex cloud т.к он предоставляет все необходимые сервисы для моего решение + ДЦ находятся в РФ и можно запросто пройти регистрацию. Но опять же он платный :(
Для реализации моего проекта мне понадобятся такие сервисы как:
- Сервис для хранения данных, реляционная бд - Yandex Managed Service for PostgreSQL (Сервис для создания и управления кластерами PostgreSQL).
- Сервис для авторизации, аутентификации безопасности - Yandex Identity and Access Management (Сервис для управления доступом к облачным ресурсам).
- Сервис для контейнеризации -> Yandex Container Registry (Сервис для управления образами и контейнерами) либо если буду использовать kubernetes то Yandex Managed Service for Kubernetes® (Сервис для создания и управления кластерами Kubernetes).
Итак, внутри калькулятора Yandex cloud я рассчитал сколько будет стоить день использования облака со всеми необходимыми нами сервисами. Грант на знакомство с платформой — не менее 4000 рублей — вы получите уже при создании платёжного аккаунта. Эту сумму можно тратить на облачные сервисы Yandex Cloud в течение двух месяцев. Это довольно дешево. Яндекс Облако с 512 руб./день с грантом 4000 рублей
Если просто представлять взаимодействие сервисов, то оно выглядит так:
Выбранная нами схема и подход к организации процесса дает нам множество плюсов: независимую обработку нескольких людей, безопасность, масштабируемость. Но такая схема не сильно наглядная и понятная…Поэтому кроме этой схемы я решил сделать еще BPMN модель, схему БД и расписать стэк технологий который буду использовать для своего решения
Лучше всего продемонстрировать работу нашего сервиса и описать пользовательские сценарии сможет BPMN модель: в ней мы можем отразить взаимодействие сервисов и показать процесс обработки запроса нашего пользователя
- Frontend - Next.js, React, Typescript
- Backend - Nest.js
- Database - PostgreSQL
- Cloud -