Update Application Stack authored by Nicolas Pope's avatar Nicolas Pope
# Technologies
The following technologies are utilised:
* NodeJS: Javascript environment for backend (in docker)
* Typescript:
* React: for the client UI
* Recoil: for state management in the client
* Styled components: For CSS
* Jest: for automated testing
* Lerna: Monorepo management tool
* Yarn: NodeJS package manager
* Nginx: as the application gateway / reverse proxy
* TSED: A typescript service framework for writing REST APIs
* MongoDB: Database for storing user and node details etc.
* Redis: Inter-service messaging and in-memory database
* Docker: To containerise the services and client
* [NodeJS](https://nodejs.org/): Javascript environment for backend (in docker)
* [Typescript](https://www.typescriptlang.org/):
* [React](https://reactjs.org/): for the client UI
* [Recoil](https://recoiljs.org/): for state management in the client
* [Styled-components](https://www.npmjs.com/package/styled-components): For CSS
* [Jest](https://www.npmjs.com/package/jest): for automated testing
* [Lerna](https://www.npmjs.com/package/lerna): Monorepo management tool
* [Yarn](https://classic.yarnpkg.com/en/): NodeJS package manager
* [Nginx](https://www.nginx.com/): as the application gateway / reverse proxy
* [TSED](https://tsed.io/): A typescript service framework for writing REST APIs
* [MongoDB](https://www.mongodb.com/): Database for storing user and node details etc.
* [Redis](https://redis.com/): Inter-service messaging and in-memory database
* [Docker](https://www.docker.com/): To containerise the services and client
* Gitlab: For CI/CD
* Webhooks: For automated deployment on our Ubuntu server
* [Webhooks](https://github.com/adnanh/webhook): For automated deployment on our Ubuntu server
* Docker Registry: Our own registry instance
* Docker-compose: To orchestrate a collection of docker containers
# Development and Monitoring Tools
* OpenSearch: A logging and metrics solution
* OpenSearch Dashboard: Web interface to OpenSearch
* RedisInsight: Web interface to Redis
* [OpenSearch](https://opensearch.org/): A logging and metrics solution
* [OpenSearch Dashboard](https://opensearch.org/docs/latest/dashboards/index/): Web interface to OpenSearch
* [RedisInsight](https://redis.io/docs/stack/insight/): Web interface to Redis
* VS Code: Development containers
* Mongo Express: Web interface for MongoDB
* [Mongo Express](https://github.com/mongo-express/mongo-express): Web interface for MongoDB
* Docker Registry UI: Web interface to browse docker registry
\ No newline at end of file