MindSpa's Backend Documentation

This documentation contains the core features, concepts, procedures, design principles and the architecture of the Mindspa Backend.

TABLE OF CONTENTS

  1. Architecture
  2. Design Principles
  3. MVC Framework
  4. Project Setup
  5. Contributing

ARCHITECTURE

Please refer to Architecture for information on the architecture we are implementing

PRINCIPLES

Two major principles will be strictly followed and applied during throughout the duration of this project which are:

  1. THE SOLID PRINCIPLE
  2. THE DRY PRINCIPLE

SOLID PRINCIPLE: SOLID is an acronym for a set of five principles mainly

  • Single Responsibility Principle
  • Open-closed principle
  • Liskov substitution principle
  • Interface segregation principle
  • Dependency inversion principle

Single Responsibility Principle: This principles states

A class should have one and only one reason to change, meaning that a class should have only one job.

DRY PRINCIPLE

DRY is an acronym which stands for Don't Repeat Yourself. This is a software development principle that tries to eliminate redundancy and reduce pattern recurrence and code duplication by using abstractions instead.

“every piece of knowledge must have a single, unambiguous, authoritative representation within a system.” - The Pragmatic Programmer


MVC Framework

Please refer to MVC Framework for information on the framework we are implementing


PROJECT SETUP

Installation

Follow these steps to setup the project locally on your computer

  1. Clone the repo
git clone https://github.com/ElvaTecnologies/Mind-Spa_backend.git
  1. Install NPM Dependencies
npm install

Note: If dependencies are deprecated at time of installation, then upgrade these packages by simplying running

npm audit fix --force
  1. Create .env file
    When you clone this repository you will not have an env file because it would have been gitignored. Create yours and store the credentials. for example
DB_CONNECTION_STRING = sql/localhost:PORT//<username>:<password>@sqlurlhere
  1. Start Project
npm start

Contributing

Please refer to Contributions for information on how to contribute