{"id":50120059,"url":"https://github.com/algorithm-ssau/electronics-store","last_synced_at":"2026-05-23T18:05:28.177Z","repository":{"id":51103017,"uuid":"352084716","full_name":"algorithm-ssau/electronics-store","owner":"algorithm-ssau","description":null,"archived":false,"fork":false,"pushed_at":"2021-05-23T21:23:15.000Z","size":1358,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-23T19:08:10.814Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/algorithm-ssau.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-27T13:51:00.000Z","updated_at":"2024-04-23T19:08:10.815Z","dependencies_parsed_at":"2022-09-10T00:10:52.594Z","dependency_job_id":null,"html_url":"https://github.com/algorithm-ssau/electronics-store","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/algorithm-ssau/electronics-store","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2Felectronics-store","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2Felectronics-store/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2Felectronics-store/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2Felectronics-store/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/algorithm-ssau","download_url":"https://codeload.github.com/algorithm-ssau/electronics-store/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/algorithm-ssau%2Felectronics-store/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33406505,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T04:15:53.637Z","status":"ssl_error","status_checked_at":"2026-05-23T04:15:53.242Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-23T18:04:55.622Z","updated_at":"2026-05-23T18:05:28.151Z","avatar_url":"https://github.com/algorithm-ssau.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Electronics-store\n\nPurpose of this project is to create educational electronics store website\nusing modern technologies and tools.\n\nFrontend: React + TypeScript + Redux\nServer: Express + Node.js + MongoDB\nAPI: Python\n\n## Building\n\nYou can build this project either with [Docker](https://www.docker.com/) or without it. Recommended way is to use Docker since it is very fast and simple.\nDirect download link:\n\nhttps://www.docker.com/products/docker-desktop\n\n### Building with Docker\n\nThis project assembles into 3 docker containers, named accordingly:\n- api:prod\n- server:prod\n- client:prod\n\nThere is a simple shell script for convenience. Keep in mind, however, that docker containers require a lot of space (around ~3 GBs for this project).\n\n```shell\n# In Root dir:\ncd scripts\nsh build-docker-containers.sh\n```\n\n### Building without Docker\n\nIn order to build without docker, you should have [python3](https://www.python.org/downloads/) and [pip](https://pip.pypa.io/en/stable/installing/) installed.\nThen you can use following commands:\n- Server:\n```shell\n# In Root dir:\ncd server\nnpm i\n```\n- Api:\n```shell\n# In Root dir:\ncd python-api\n# Use python or python3\npython -m venv env\n# On some OS use following line instead:\n# cd env/bin \u0026 activate\ncd env/scripts \u0026 activate\ncd ../..\npip3 install -r pip_packages.txt\n```\n- Client:\n```shell\n# In Root dir:\ncd client\n# If you have troubles npm i, uncomment following line:\n# npm run lint:fix\nnpm i\n```\n## Running\n\nBy default, this project uses ports\n- 8080 for client;\n- 5000 for server;\n- 8000 for api.\n\n### Running with Docker\n\nYou can use [Docker compose](https://docs.docker.com/compose/) to run these containers together.\n```shell\n# In Root dir:\ndocker compose up\n```\nThere you go! Now whole project is running on http://localhost:8080\n\n### Running without docker\n\nIn order to run without docker, you should also have [uvicorn](https://www.uvicorn.org/) installed.\n\n- Server\n```shell\n# In Root dir:\ncd server\nnpm run start\n```\n- Api\n```shell\n# In Root dir:\ncd python-api\nuvicorn main:app\n```  \n- Client\n```shell\ncd client\nnpm run start\n```\n\n## About\n\nКлиентская часть предоставляет пользователю удобный интерфейс для взаимодействия с\nприложением. Первая страница это регистрация/вход где необходимо указать уникальный\nлогин и правильный пароль. После удачного входа пользователь попадает в каталог товаров.\nЗдесь представлена вся продукция магазина. Здесь каждый товар можно добавить в корзину.\nНажать на кнопку выхода из приложения. Перейти на личную страницу пользователя или в корзину.\nНа личной странице пользователя отображена информация о пользователя, настройки и все его\nзаказы. При переходе на корзину мы видим все добавленные товары и итоговую стоимость. Если\nвсе указано правильно можно перейти к оплате, где проверяется количество денег на счете\nпользователя. После оплаты заказ можно увидеть на странице пользователя.\n\n### Информация о разработчиках\n\nКротков Владимир Денисович\nСтудент 3 курса Факультета информатики. Full-stack разработчик.\nТехнологии: C++, C#, JS, TS, React, MySQL.\nПроходит обучение на военной кафедре Самарского университета. Увлекается аниме и современными технологиями.\n\nИванов Сергей Юриевич\nСтудент 3 курса Факультета информатики. C# backend разработчик.\nТехнологии: С#, .NET, Js, React, SQL\nПроходит обучение на военной кафедре Самарского университета. Увлекается футболом и предпринимательством.\nЗанимается разработкой симуляторов радиоприборов на Unity.\n\nБужлаков Никита Сергеевич\nСтудент 3 курса Факультета информатики. Java backend разработчик.\nТехнологии: Java, Spring, Js, React, SQL, C#\nУвлекается походами, тяжелым роком.\n\nАбрамов Кирилл Дмитриевич\nСтудент третьего курса Факультета информатики. Java бекэнд разработчик.\nТехнологии: Java, Spring, SQL, Hibernate, C#, Unity, Js, NodeJs\nУчится на военной кафедре Самарского университета. Увлекается психологией, профсоюзной деятельностью.\n\nКорчагин Петр Петрович\nСтудент третьего курса Факультета информатики. Data Science.\nТехнологии: Python, PyTorch, ScKit-learn, Numpy, C#, Js, NodeJs\nВоинственный анимешник.\n\n### Серверная часть\n\nСерверная часть для обеспечения работы приложения онлайн магазина предоставляет следующие сущности:\nCustomer, Order, Product.\nУ каждой сущности в приложении есть свой уникальный id.\n\n- Customer это объект покупателя в магазине. У него есть имя, уникальные логин, email и пароль, количество денег\nна счету, аватар, статус верификации и список id его заказов (Order).\n\n- Order это заказ пользователя, он создается, при покупке пользователем каких либо товаров (Product)\nи содержит в себе статус заказа, дату приема заказа, общую стоимость заказа и id продуктов, которые заказал пользователь.\n\n- Product это продукт, который может приобрести пользователь. У него есть цена, название, картинка\nтип и описание\n\n### Python API\n\nОсновная задача данного API - возвращать общедоступную служебную информацию, хранящуюся в файле .env.\nНа данный момент можно получить в JSON формате следующие данные:\n\n1) Версию Сервера (/api/appinfo/server/version)\n2) Версию Клиента (/api/appinfo/client/version)\n3) Дату последнего обновления Сервера (/api/appinfo/server/last_update)\n4) Дату последнего обновления Клиента (/api/appinfo/client/last_update)\n5) Список разработчиков с указанием позиций в команде (/api/appinfo/developers)\n\n### Клиентская часть\n\nКлиентская часть нужна для взаимодействия пользователя с сайтом через удобный интерфейс.\nПользователь уберегается от ошибок и получает возможность комфортно путешествовать по сайту с помощью навигации.\nПредусмотрены возможности регистрации нового пользователя и входа уже существующего, добавления товаров в корзину и их покупки, а также многое другое.\nПри заходе администратора, у него на странице отображается техническая информация.\n\n## Наши преимущества\n\nНиже приведена таблица, в которой указаны наши преимущества по сравнению с другими известными сервисами и магазинами.\n\n| Описание | Иные сервисы | EStore |\n|----------------|:---------:|----------------:|\n| Дней до добавления поиска | [Google stadia](https://stadia.google.com/): \u003e500 | 1\u003c |\n| Средняя скорость поиска | [Ситилинк](https://www.citilink.ru/): ~3-5 секунд | \u003c 0.01 секунды |\n| Корзина сохраняется, если случайно забыли зайти | [Aliexpress](https://aliexpress.ru/): нет | да |\n\n... и многое другие.\n\n#### Приятного времяпрепровождения!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falgorithm-ssau%2Felectronics-store","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falgorithm-ssau%2Felectronics-store","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falgorithm-ssau%2Felectronics-store/lists"}