Coder Social home page Coder Social logo

outvio-nest-app's Introduction

Outvio Nest App

app-preview

You can access the Swagger documentation at http://localhost:3003/api after installing and starting the project.

๐Ÿš€ Technologies

Here're some of the used tecnologies:

  • Typescript
  • NestJS
  • PrismaORM
  • Mongo
  • Redis
  • Docker
  • Jest
  • Swagger
  • ESLint

๐Ÿง Features

Here're some of the features:

  • NestJS application with Prisma ORM for database interactions.
  • Mongo database initialized as service.
  • Redis database used for rate limit storing.
  • Dockerized application services for easy deployment.
  • Authentication module with Passport JWT for authentication with token.
  • CRUD operations for managing private and public data.
  • Rate Limite module for ip and token rate limiting.
  • All services covered by unit test by using Jest.
  • API documentation using Swagger.
  • ESLint and Prettier configurations for code formatting.

๐Ÿงพ Prerequisites

Before you begin, ensure you have met the following requirements:

  • Node.js installed (version ^16.0.0)
  • Docker installed
  • Set environment folder and files

๐Ÿ› ๏ธ Standalone Installation:

1. Clone the repository:

git clone https://github.com/enescloud/outvio-nest-app.git

2. Install Project

yarn install

3. Set Environment Files

mv env1.example .env
mkdir env
mv env2.example env/.env.dev

4. Give Permissons To Our Script File

chmod +x scripts/init-all-services.sh

5. Build and Initialize All Services(Redis, Mongo)

./scripts/init-all-services.sh

6. Run Tests

yarn test

7. Start Application

yarn start:debug

๐Ÿ“ Notes

You can use Prisma Stuido for checking data on UI

npx prisma studio

You can use Redis CLI for checking data on cli

docker exec -it redis redis-cli
KEYS *

Concurrency Note: In the project, Node.js's robust event loop and Redis's "Fixed Window" algorithm have been harnessed to ensure the safe and efficient handling of concurrent operations. Node.js's event-driven architecture facilitates the management of multiple operations happening simultaneously, while Redis's Fixed Window mechanism controls the rate at which requests are permitted, preventing overloading of shared resources. This combination effectively safeguards against concurrency issues, ensuring data integrity and resource protection.

outvio-nest-app's People

Contributors

enescloud avatar

Watchers

 avatar

outvio-nest-app's Issues

Correction for REQUEST_TTL in Environment

Issue Description:
I realized that I made an mistake in the REQUEST_TTL constant in the environment configuration. It should be 120 for 1 hour, but I mistakenly set it to 3600. I apologize for the oversight.

Proposed Correction:
I would like to correct the value of REQUEST_TTL to 120 to accurately reflect a 1-hour time period. This change will ensure that the application behaves as intended in relation to request expiration.

Additional Information:
Current Value: 3600
Intended Value: 120

I appreciate your understanding, and I'll make the necessary adjustments promptly. Thank you! @MykytaBazhenov @ov-sergey

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.