Как разработать веб-приложение?
Суть следующая: посетитель заходит в приложение и в поле вводит номер своей виртуальной "скидочной" или просто "персонифицированной" карты (тем самым регистрируя или активируя её). Номера для карт должны генерироваться и выдаваться менеджерам для привлечения новых клиентов.Вот это требование нужно продумать и от этого плясать дальше.
Прежде нужно понять бизнес-процессы.
В качестве менеджера (роль пользователя в БД) я захожу туда-то, делаю X и получаю Y.
В качестве клиента (роль пользователя в БД) я захожу туда-то, делаю X и получаю Y.
Расписываешь действия, которые выполняет пользователь, что видит на экране, как взаимодействует через интерфейс и т.д. 

Строишь макет интерфейса.
https://careerfoundry.com/en/blog/ux-design/how-to...
https://uxplanet.org/basic-ui-ux-design-concept-di...
Старайся сделать всё просто, минимально и при этом функционально. Не нужно гнаться за JS-фреймворками - они обычно лишь добавляют сложности. Если на странице простая форма для ввода данных с валидацией полей, то ничего не нужно добавлять, а использовать разве что какие-то библиотеки для облегчения труда. Если есть несложная логика интерфейса, возможно достаточно какого-то движка шаблонов типа Handlebars.

Номер карты обычно считывается с магнитной полосы или чипа. Нужно генерировать номера карт. Для этого нужно знать что представляет из себя этот номер и есть ли какие-то правила для его генерации.
Если просто произвольная последовательность цифр, то это тривиально.
Продумай какой тип данных нужен для хранения в СУБД, что будет находиться в таблице, при разных сценариях как будет использоваться (находиться).

Для работы с СУБД берется ORM, например SQLAlchemy или другой.
FRONT (PWA):

Разработка: https://habr.com/ru/company/ruvds/blog/421349/, 
Демо: https://github.com/gokulkrishh/demo-progressive-web-app
Manifest: https://www.w3.org/TR/appmanifest/
Service Worker: https://googlechrome.github.io/samples/service-worker/


Back-End:
Тут все понятно... Python + Django/Flask + PgSQL