Skip to content

dandreyanov/GoMarket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoMarket

Легенда: В городе GoCity существует развитый рынок товаров и услуг. Жители города проявили интерес к удобному способу управления своими покупками и продажами. Для удовлетворения этой потребности было принято решение создать консольный маркетплейс под названием "GoMarket". Этот маркетплейс предоставит жителям города возможность регистрации, добавления товаров, покупок, а также управления своим аккаунтом. Наша задача - разработать приложение на языке Go, которое позволит пользователям легко управлять своими покупками и продажами через консольный интерфейс. Цель проекта: Цель проекта "GoMarket" - предоставить жителям удобный инструмент для управления и отслеживания своих покупок и продаж через консольный интерфейс. Пользователи смогут регистрироваться, добавлять товары, просматривать список товаров, совершать покупки, а также управлять своим аккаунтом. Задача: Разработать приложение на языке Go под названием "GoMarket", представляющее собой маркетплейс для управления товарами и покупками. Приложение должно обеспечивать регистрацию и авторизацию пользователей, возможность добавления, редактирования, просмотра и удаления товаров, а также выполнение покупок. Инструменты:

  1. Язык программирования Go: Go является основным инструментом для разработки всего приложения. Он обеспечивает эффективную работу с интерфейсом и обработку данных.
  2. Хранение данных: для сохранения данных о пользователях, товарах и покупках между сеансами работы приложения иcпользовать PostgreSQL.
  3. HTTP-фреймворк: рассмотрите использование фрейворка Gin чтобы ускорить разработку и упростить обработку маршрутов.
  4. Организация кода: используйте стандартные пакеты и практики организации кода в Go для обеспечения чистоты и читаемости.
  5. Тестирование: воспользуйтесь стандартным пакетом testing в Go для написания базовых тестов и обеспечения надежности функциональности.
  6. Git: используйте систему контроля версий Git для отслеживания изменений, создания веток.
  7. Дополнительные библиотеки: в случае необходимости, вы можете использовать дополнительные библиотеки для облегчения разработки, например, для работы с хешами паролей. Этапы проекта:
  8. Этап управления товарами: разработка функционала добавления, просмотра, редактирования и удаления товаров. Каждый товар должен иметь уникальный идентификатор (uuid).
  9. Этап покупок: внедрение возможности совершения покупок. Пользователь может указывать код товара и количество при покупке. Обновление количества товара на складе после покупки.
  10. Этап регистрации: разработка системы регистрации пользователей. Ввод уникального логина и пароля. Проверка уникальности логинов. (на основе регулярных выражений, пакет regexp)
  11. Этап авторизации: реализация механизма авторизации зарегистрированных пользователей. Возможность входа в систему с использованием логина и пароля.
  12. Этап улучшений и финальное тестирование: добавление дополнительных функций по желанию (например, просмотр истории покупок). Проведение финального тестирования, оптимизация кода и обработка возможных ошибок.

Структуры данных, которые понадобятся при выполнении этапов проекта:

Пользователь (User): • ID: уникальный идентификатор пользователя • Username: логин пользователя • Password: хэшированный пароль • Email: адрес электронной почты (опционально)

Товар (Product): • ID: уникальный идентификатор товара • Name: название товара • Description: описание товара • Price: цена товара • Quantity: количество товара на складе

Покупка (Purchase): • ID: уникальный идентификатор покупки • UserID: идентификатор пользователя, совершившего покупку • ProductID: идентификатор купленного товара • Quantity: количество купленного товара • Timestamp: временная метка покупки

Методы:

Методы для управления пользователями: • RegisterUser(username, password, email): регистрация нового пользователя. • LoginUser(username, password): авторизация пользователя. • GetUserProfile(userID): получение информации о профиле пользователя.

Методы для управления товарами: • AddProduct(name, description, price, quantity): добавление нового товара. • GetAllProducts(): получение списка всех товаров. • GetProductByID(productID): получение информации о конкретном товаре. • UpdateProduct(productID, name, description, price, quantity): редактирование информации о товаре. • DeleteProduct(productID): удаление товара.

Методы для управления покупками: • MakePurchase(userID, productID, quantity): совершение покупки товара. • GetUserPurchases(userID): получение списка всех покупок пользователя. • GetProductPurchases(productID): получение списка всех покупок по конкретному товару. Дополнительные методы: • HashPassword(password): хэширование пароля перед сохранением в базе данных. • VerifyPassword(savedHash, inputPassword): проверка введенного пароля по хэшу.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages