{"id":21600921,"url":"https://github.com/DIMFLIX/nexus-pc","last_synced_at":"2025-07-17T04:31:04.900Z","repository":{"id":260760179,"uuid":"882026525","full_name":"DIMFLIX-OFFICIAL/nexus-pc","owner":"DIMFLIX-OFFICIAL","description":"My term project on databases","archived":false,"fork":false,"pushed_at":"2024-11-24T13:01:54.000Z","size":4122,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-24T13:42:12.611Z","etag":null,"topics":["application","college","college-project","computer-shop","course-project","coursework","css","database","java","javafx","javafx-application","postgresql","shop"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DIMFLIX-OFFICIAL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-01T18:14:48.000Z","updated_at":"2024-11-24T13:03:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"52eb1227-37f0-4b8b-b15a-0e2dc9fc4c61","html_url":"https://github.com/DIMFLIX-OFFICIAL/nexus-pc","commit_stats":null,"previous_names":["dimflix-official/nexus-pc"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DIMFLIX-OFFICIAL%2Fnexus-pc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DIMFLIX-OFFICIAL%2Fnexus-pc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DIMFLIX-OFFICIAL%2Fnexus-pc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DIMFLIX-OFFICIAL%2Fnexus-pc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DIMFLIX-OFFICIAL","download_url":"https://codeload.github.com/DIMFLIX-OFFICIAL/nexus-pc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226210053,"owners_count":17590497,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["application","college","college-project","computer-shop","course-project","coursework","css","database","java","javafx","javafx-application","postgresql","shop"],"created_at":"2024-11-24T19:07:38.652Z","updated_at":"2025-07-17T04:30:55.272Z","avatar_url":"https://github.com/DIMFLIX-OFFICIAL.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NexusPC\n**NexusPC** — магазин компьютерной техники. \\\nПроект выполнен в качестве курсовой работы по предмету **\"МДК 11.01 Технология разработки и защиты баз данных\"** за 3 курс в Нижегородском радиотехническом колледже.\n\nЭта система способствует эффективному управлению запасами, заказами и взаимодействием с клиентами, обеспечивая пользователей необходимой информацией и инструментами для принятия обоснованных решений.\n\n# Описание структуры системы\nВ рамках данного проекта была разработана информационная система, представляющая собой приложение, предназначенное для функционирования в качестве магазина компьютерной техники. Данная система состоит из восьми взаимосвязанных страниц, каждая из которых выполняет свою уникальную функцию и обеспечивает пользователю доступ к различным аспектам работы с приложением. Основные страницы приложения включают:\n- **Регистрация** – страница, на которой пользователи могут создать новый аккаунт, заполнив необходимые поля с личной информацией.\n- **Авторизация** – интерфейс для входа в систему, где пользователи вводят свои учетные данные для доступа к функционалу приложения.\n- **Каталог товаров** – основная страница, на которой представлены все доступные товары, сгруппированные по категориям.\n- **Информация о товаре** – страница, предоставляющая детальную информацию о выбранном товаре, включая его характеристики и цену.\n- **Фильтры** – инструмент для сортировки и фильтрации товаров по различным критериям, таким как цена, производитель и технические характеристики.\n- **Корзина товаров** – страница, на которой пользователи могут просмотреть добавленные в корзину товары перед оформлением заказа.\n- **Заказы** – интерфейс для просмотра истории заказов пользователя и их статусов.\n- **Админ панель** – специализированный интерфейс для администраторов, позволяющий управлять данными в системе.\n\nАдминистративная панель включает в себя дополнительные одиннадцать страниц, каждая из которых соответствует отдельной таблице базы данных. Эти таблицы содержат информацию о различных аспектах работы магазина и включают:\n- **users** – таблица с данными пользователей приложения.\n- **processors** – информация о процессорах, доступных в магазине.\n- **graphic_cards** – данные о видеокартах.\n- **motherboards** – сведения о материнских платах.\n- **power_supplies** – информация о блоках питания.\n- **rams** – данные об оперативной памяти.\n- **coolers** – информация о системах охлаждения.\n- **cases** – сведения о корпусах компьютеров.\n- **computers** – таблица с информацией о готовых сборках компьютеров.\n- **orders** – данные о заказах пользователей.\n- **order_items** – информация о товарах в каждом заказе.\n\nПереходы между страницами приложения реализованы с помощью кнопок и контекстного меню, что обеспечивает удобство навигации для пользователей. \nПри запуске приложения пользователь сразу попадает на страницу авторизации. Здесь он может пройти процедуру идентификации, введя свои учетные данные. В случае отсутствия аккаунта имеется возможность перейти к регистрации нового пользователя. \n\nПосле успешного ввода данных и нажатия на кнопку **\"Login\"**, пользователь автоматически перенаправляется на основной интерфейс приложения, где ему становится доступен полный функционал системы.\n \nНа главной странице пользователя встречает меню каталога товаров. В этом меню представлено обычное перечисление компьютеров с карточками товаров, включающими фотографии, названия и описания. \nКаждая карточка содержит информацию о цене и кнопку **\"Add to cart\"**, нажатие на которую позволяет добавить выбранный компьютер в корзину. Если пользователь нажимает на область с названием или описанием товара, он попадает на страницу просмотра информации о продукте. На данной странице отображается вся информация из карточки товара с добавлением детальных характеристик компьютера, таких как процессор, видеокарта, материнская плата, блок питания, оперативная память, кулер и корпус. \n\nСтраница фильтров предоставляет пользователю возможность отфильтровать каталог товаров по необходимым комплектующим или интересующим ценовым диапазонам. \n\nСтраница **\"Cart\"** (корзина товаров) аналогична каталогу товаров, но с дополнительными функциями. Здесь пользователь видит количество товара на складе и виджет для изменения количества выбранного компьютера в заказе. \nТакже присутствует кнопка для удаления товара из корзины. В верхней части списка отображается итоговая стоимость заказа и кнопка **\"Make an order\"** (сделать заказ). \nЕсли пользователь имеет роль администратора, то данная страница дополнительно включает текстовое поле для указания контактов пользователя, который сделал данный заказ. Это может быть полезно в случаях, когда клиент связывается с магазином по телефону и предоставляет информацию для оформления заказа. \n\nПосле завершения оформления заказа пользователь перенаправляется на страницу **\"Orders\"** (заказы), где он может ознакомиться с подробной информацией обо всех совершенных заказах. Доступная информация включает:\n- **дату оформления заказа**\n- **итоговую цену заказа**\n- **статус выполнения заказа**\n- **краткие сведения о компьютерах, приобретенных в конкретном заказе (цены указаны на момент покупки).**\n\nЕсли у пользователя приложения установлен статус администратора, он получает доступ к кнопке **\"admin panel\"**, которая открывает контекстное меню с выбором таблицы для редактирования. После выбора соответствующей таблицы открывается страница, на которой отображается таблица с данными во весь экран. В верхней части страницы расположены несколько кнопок управления таблицей:\n\n- **Add row** – добавление новой строки в таблицу,\n- **Delete row** – удаление выделенной строки,\n- **Save changes** – сохранение всех внесенных изменений в таблице,\n- **Refresh** – перезагрузка страницы с обновлением актуальных данных из базы данных.\n\n\u003e [!IMPORTANT]\n\u003e В папке `docs` вы можете найти техническое задание, а так-же мою курсовую, в которой есть описание разработки, архитектуры приложения и прочего. \n\n# Настройка\nСоздайте следующий файл `connection.prop` и настройте подключение к базе данных PostgreSQL.\n\nШаблон конфигурации:\n```ini\nurl=jdbc:postgresql://localhost:5432/nexus_pc\nusername=\u003c❗️YourLogin❗️\u003e\npassword=\u003c❗️YourPassword❗️\u003e\n```\n\n## Тестирование\nС помощью SQL кода, написанного в файле `random_data.sql`, Вы можете сгенерировать рандомные данные для всех комплектующих, а так-же для самих компьютеров.\n\n# Обзор\n\u003cimg src=\"assets/login.png\"\u003e\n\u003cimg src=\"assets/registration.png\"\u003e\n\u003cimg src=\"assets/catalog.png\"\u003e\n\u003cimg src=\"assets/computerInformation.png\"\u003e\n\u003cimg src=\"assets/filters.png\"\u003e\n\u003cimg src=\"assets/cart.png\"\u003e\n\u003cimg src=\"assets/orders.png\"\u003e\n\u003cimg src=\"assets/admin.png\"\u003e\n\n# Вклад в развитие\nВклад в развитие NexusPC приветствуется! Если вы обнаружите какие-либо проблемы или у вас есть идеи по улучшению, не стесняйтесь открывать проблему или отправлять запрос на слияние.\n\n# Лицензия\n**NexusPC** распространяется под лицензией GNU GPLv3.\n\n### Разрешения:\n- **Коммерческое использование**\n- **Модификация**\n- **Использование патента** \n- **Частное использование** \n\n### Условия: \n- **Раскрыть источник** \n- **Лицензия и уведомление об авторских правах** \n- **Та же лицензия** \n\n### Подробнее смотрите в файле [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDIMFLIX%2Fnexus-pc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDIMFLIX%2Fnexus-pc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDIMFLIX%2Fnexus-pc/lists"}