/GeekShop

Интернет-магазин для увлечённых людей

Primary LanguageVue

Universal Web Application приложение с использованием Vue.js и Nuxt.js

Реализует концепцию SSR (Server-Side Rendering)

Содержание корзины синхронизируется с хранилищем на клиенте (LocalStorage)

Название файла Содержание файла
api/index.js api/routes.js Интерфейс для работы с базой данных
pages/* Все страницы хранятся здесь
components/* Многоразовые компоненты, шапка, модальные окна
nuxt.config.js Настройки приложения
assets/img Все изображения здесь
assets/main.css Все глобальные стили здесь
assets/strings.js Через этот файл реализована поддержка нескольких языков (в работе)
config.js Специфические и конфиденциальные настройки. Для каждого разработчика и сервера этот файл уникален.

Получение данных от сервера реализовано в папке api

На стороне сервера установлены Express, MongoDB, Body-Parser - для обработки запросов и доступу к Mongo

Поток данных

Данные о товарах и отзывы хранятся в базе данных Mongo на сервере. Коллекции: books, t_shirts, trinkets, reviews

Через API мы получаем эти данные и сохраняем в store. Данные получаем не все сразу, а при переходе пользователя в соответствующий раздел сайта.

Содержание корзины хранится в переменной productsInCart, которая синхронизируется с LocalStorage

Конфиденциальные данные хранятся в файле config.js. В репозитории в этом файле данные с моего локального ПК. На сервере они отличаются

Хостинг от компании netangels.ru

Сервер работает под управлением Node.js v13.0.1, MongoDB Структура файлов на сервере

-.nuxt

-api

-node_modules

config.js

nuxt.config.js

package-lock.js

package.js