From e29774db13dfff9b9ee94c429cef6b631489dd4e Mon Sep 17 00:00:00 2001 From: Timur Shemsedinov Date: Wed, 20 May 2020 23:49:28 +0300 Subject: [PATCH] Update project overview and feature list --- README.md | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 05029b9..e34fedd 100644 --- a/README.md +++ b/README.md @@ -3,45 +3,49 @@ ## Concept You can begin development from this Starter Kit but it is not for production -usage. After your application will be ready you can easely run it in +usage. The purpose of this Starter Kit is to show simplicity, basic concepts, +give structure and architecture example. All parts of this implementation are +optimized for readability and for understanding, but not for performance and +scalability. +So it is good for development and education. However, for production deployment +you may need [Metarhia Starter Kit](https://github.com/metarhia/StarterKit) +(it will be released in the middle of July 2020). After your application will be +ready you can easely run it in [Metaserverless cloud](https://github.com/Metaserverless), an open source cloud platform based on [Metarhia technology stack](https://github.com/metarhia) and -[Node.js](https://nodejs.org/en/). The purpose of this Starter Kit is to show -simplicity of basic concepts, give structure and architecture example. All parts -of this implementation are optimized for readability and for understanding, but -not for performance and scalability. So it is good for development and better -understanding. However, for production deployment you need to take -[Metarhia Starter Kit](https://github.com/metarhia/StarterKit) +[Node.js](https://nodejs.org/en/). ## Feature list -- Serve API with routing, HTTP(S), WS(S) +- Serve API with auto-routing, HTTP(S), WS(S) - Server code live reload with file system watch - Graceful shutdown and application reload - Minimum code size and dependencies -- Code sandboxing for security and context isolation +- Code sandboxing for security, dependency injection and context isolation - Multi-threading for CPU utilization and isolation - Serve multiple ports in threads - Serve static files with memory cache - Application configuration - Simple logger and redirection from console - Database access layer (Postgresql) -- Client persistent sessions +- Persistent sessions (stored in DB) - Unit-tests and API tests example -- Request queue timeout and size -- API parallel execution concurrency -- API method execution timeout +- Request queue with timeout and size +- Execution timeout and error handling +- Layered architecture: core, domain, api, client ## Features to be implemented in next release - Load balancing for scaling - Prototype polution prevention -- Better code isolation +- Multiple IDEs support +- Better testing ## Usage - You need node.js v12.5.0 or later (v14 prefered), linux (tested on Fedora 30, -Ubuntu 16, 18, 19 and 20, CentOS 7 and 8) +Ubuntu 16, 18, 19 and 20, CentOS 7 and 8), Postgresql 9.5 or later (v11.8 +prefered), OpenSSL v1.1.1 or later, certbot (recommended but optional) - Fork and clone this repository (optionally subscribe to repo changes) - Run `npm i` to install dependencies and generate RSA certificate - Remove unneeded dependencies if your project doesn't require them