Behind The Project of NanoWebDev

Contents

This article will inform you about behind the project of NanoWebDev. So the new developer can easily understand what should to do before getting started to develop our project.

Our goal is to create an applications that scalable for horizontal scaling purpose. We create a small isolated application so our application can run standalone and could connect to other applications via API. When we setup our applications run as service, then we can call this Microservices.

There is a rules to make a microservices application:

  1. Application must be small and can run standalone.
  2. Application support to run in container services like docker.
  3. Application support to run in cluster mode (multi thread).
  4. Application cache could switch easily from memory to using Redis when in cluster or scale mode.
  5. Authentication and Authorization must be stateless (no session and cookie).
  6. Application have own database, never connect directly on others database.
  7. Communication with other applications should using Rest API.
  8. If the application have an upload feature, never upload to same directory application. File should be uploaded to another server storage or storage service like AWS S3, etc.

NanoWebDev using Fastify framework which is powered by NodeJS and written using JavaScript programming language.

Server (backend):

  • Minimum NodeJS v14.19.3.
  • NodeJS Framework Fastify v4.
  • Use strict.
  • Rest API first.
  • API Documentation using Postman.
  • Default Database is SQLite but have to support switch to multiple RDBMS. i.e MySQL, MariaDB and PostgreSQL.
  • Default cache server is using memory but have to support switch to Redis easily.
  • Everything is Stateless using JWT (no session and cookie).
  • Dockerized to support deploy on container service.
  • Codestyle StandardJS

Views (frontend):

  • Use strict.
  • Using ETA template engine.
  • CSS Framework using Bootstrap 5.
  • Default theme template using Argon Dashboard 2 - Free Version.
  • Support for all modern browser with minimum EDGE browser (no IE support).
  • Vanilla JavaScript (no Jquery).

If you interested to develop our project. You can start by learning one of our project source code. Applications is very small, so you will be easy to read, learn and understanding the source code.

Currently NanoWebDev develop our applications based on above direction. We could change our direction in the future following the new technology or new solution that more efficient.

0%