Skip to main content

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.

Architecture Overview

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.

Module Architecture Overview

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.

info

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.

info

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.

info

By default, the themes folder is not created when you create a new project. You need to create it manually.