Architecture Overview
Evershop was developed with Node and PostgreSQL. The project is divided into 2 parts: the backend and the frontend.
It is a monolithic application, which means that the backend and the frontend are in the same project.
Evershop provides both REST API and GraphQL API for the frontend to communicate with the backend.
Module System
EverShop is a modular application and it supports modularity. It means that all functionality is implemented and delivered in components that are known as Modules.
A module is a logical group – a directory containing controllers, services, views – that are related to a specific business feature. In keeping with EverShop’s commitment to optimal modularity, a module encapsulates one feature and has minimal dependencies on other modules.
Project Folder Structure
A EverShop project contains node_modules, caching files, configuration files, media and extension. Let’s take a look to the directory structure:
├── .evershop
├── .log
├── config
│ ├ default.json
├── extensions
├── media
├── node_modules
├── themes
├── package-lock.json
└── package.json
The .evershop
Folder
This folder contains the built files for production. ReactJS components and assets files will be generated by the build command and stay here automatically.
The .log
Folder
This folder contains the log file. The log file is where we store the logging information of all the even happening in your application.
The config
Folder
This folder contains the configuration files. You can learn more about the configuration in this document.
By default, the config
folder is not created when you create a new project. You need to create it manually.
The extensions
Folder
This folder contains modules developed by third-party and developer. Check this document to understand more the module structure.
By default, the extensions
folder is not created when you create a new project. You need to create it manually.
The media
Folder
This folder contains media files like product images, category images.
The node_modules
Folder
This is the default node_modules from NodeJS. It contains the packages from NodeJs and vendors. EverShop core package is also located in this folder.
The themes
Folder
This folder contains themes developed by third-party and developer. Check this document for more information.
By default, the themes
folder is not created when you create a new project. You need to create it manually.