diff --git a/Software-Development/README.md b/Software-Development/README.md index b37b5b1..24c1b36 100644 --- a/Software-Development/README.md +++ b/Software-Development/README.md @@ -239,3 +239,143 @@ We also recommend reading the official [Best practices for writing Dockerfiles]( ## Software Architecture Design and Non-functional Requirements +## Software Applications Specifications + +### Accepted Technologies and Development Stacks + +#### **Option #1 (Alpha): **The Overnight Master**** + +1. Ruby Programming Language (version >= 2.2) +2. Ruby on Rails Framework (version >= 5) +3. Relational Databases + 1. Postgresql (version >= 11) or + 2. MySQL (version >= 8) / Maria DB (version >= 10) +4. NoSQL Database + 1. MongoDB (version >= 4) or + 2. Elasticsearch (version >= 6) + 3. Redis (version >= 5) +5. Application server + 1. Phusion Passenger (version >= 6) + 2. Puma (version >= 3) +6. Web Server + 1. Nginx (version >= 1.18) + + + +#### **Option #2 (Beta): The Veteran** + +1. PHP (version >= 7) +2. Laravel (version >= 7) +3. Relational Databases: + 1. MySQL (version >= 8) / Maria DB (version >= 10) +4. NoSQL Database + 1. Redis (version >= 5) +5. Web & Application Server: + 1. Apache (version >= 2) + 2. Nginx (version >= 1.18) + + + +#### **Option #3 (Gamma): The Dilemma** + +1. Elixir (version >= 1.9) / Erlang Programming Language (version >= 22) +2. Phoenix Framework (version >= 1.5) +3. Relational Databases: + 1. Postgresql (version >= 11) +4. NoSQL Database: + 1. MongoDB (version >= 4) +5. Application Server + 1. Cowboy (version 1.0) +6. Web Server (if needed): + 1. Nginx (version >= 1.18) + + + +#### **Option #4 (Delta): The Polymath Developer** + +1. Python Programming Language (version >= 2.7.13) +2. Django Framework (version >= 3) +3. Relational Databases: + 1. Postgresql (version >= 11) or + 2. MySQL (version >= 8) / Maria DB (version >= 10) +4. NoSQL Database: + 1. MongoDB (version >= 4) or + 2. Elasticsearch (version >= 6) + 3. Redis (version >= 5) +5. Application server: + 1. WSGI + 2. ASGI +6. Web Server: + 1. Nginx (version >= 1.18) + + + +#### **Option #5 (Epsilon): Iron Dome** + +1. C# Programming Language (version >= 8) +2. Frameworks: + 1. ASP.NET Core (version >= 3) + 2. ASP.NET MVC (version >= 5) +3. Relational Databases: + 1. Entity Framework is a must + 2. MSSQL (version >= 14) + 3. Postgresql (version >= 11) or + 4. MySQL (version >= 8) / Maria DB (version >= 10) +4. NoSQL Databases: + 1. MongoDB (version >= 4) or + 2. Elasticsearch (version >= 6) + 3. Redis (version >= 5) +5. Web & Application Servers: + 1. Kestrel + 2. HTTP.sys + + + +#### **Option #6 (Zeta): The Enterprise Beast** + +1. Java Programming Language (version >= 8) +2. Runtime Environment + 1. JDK version (version >= 14) +3. Spring Framework / Spring Boot (version >= 5) +4. Relational Databases: + 1. MySQL (version >= 8) / Maria DB (version >= 10) + 2. Postgresql (version >= 11) +5. NoSQL Databases: + 1. MongoDB (version >= 4) or + 2. Elasticsearch (version >= 6) + 3. Redis (version >= 5) +6. Application Server: + 1. Tomcat (version >= 8) +7. Web Server: + 1. Nginx (version >= 1.18) + + + +#### **Option #7 (Eta): The Mighty Node** + +1. Programming Languages + 1. JavaScript Programming Language ( >= ECMAScript 6) + 2. TypeScript Programming Language (version >= 3) + 3. Babel is a must +2. Frameworks: + 1. Nest JS (version >= 7) + 2. Express (version >= 4) + 3. Fastify (version >= 3) + 4. Meteor JS (version >=10) -- For very specific types of projects that include super reactivity and offline data synchronization. + 5. Hapi JS (version >= 18) + 6. Adonis JS (version >= 4) +3. Relational Databases: + 1. Postgresql (version >= 11) + 2. TypeORM is a must +4. NoSQL Databases: + 1. MongoDB (version >= 4) or + 2. Only through Mongoose + 3. Elasticsearch (version >= 6) + 4. Redis (version >= 5) +5. Application Server and Environment + 1. Node JS (version >= 12) + 2. Package Managers: + 1. Yarn (latest version always) + 2. NPM (latest version always) + 3. Web Servers: + Nginx (version >= 1.18)