Welcome to my All-in-One repository for Backend Functionalities! This repository serves as a collection of templates, projects, and utilities that I continuously work on, covering various aspects of web development, APIs, databases, DevOps, and more. Below is a breakdown of the key topics and subtopics within this repository.
If you find this helpful, please consider giving it a star 🙂
- If you're solely interested in Golang,Python-based Backend or DSA, consider exploring the following: GoLang, Python, DSA
- APIs
- Authentication
- Databases
- DevOps
- Express Backend Template
- Logger
- Message Pipelines
- Modules
- Monitoring
- Payment Gateways
- Projects
- Proxy
- Socket.io
- Swagger
- Template Engine
- Testing
- Validators
- Nest Server
Includes various API designs, implementations, and tools. Emphasis on REST, tRPC, gRPC, and GraphQL implementations, and includes best practices for secure, scalable API development.
Authentication techniques include JWT (JSON Web Tokens), OAuth, and session-based authentication. Explores authentication in microservices and multi-tenant applications.
This section dives deep into multiple database technologies and patterns.
- Cookies: Server-side and client-side cookies handling for persistent user sessions.
- JsonDB: Use cases and integration of lightweight, file-based JSON databases.
- ORMs: Object-Relational Mapping implementations for Node.js applications.
- Postgres/CRUD Project: A sample CRUD application built using PostgreSQL as the main database.
- Redis: Integration with Redis for caching, message brokering, and session management.
- SQLite: Lightweight, file-based database management.
- Session: Handling server-side sessions with different database strategies.
Automation and infrastructure management tools for building, testing, and deploying applications, including Docker and Kubernetes-based deployments.
A highly modular and scalable template for building Express.js backends, with a focus on clean architecture, and best practices.
Logging strategies for server-side applications, including structured logging with tools like winston
and morgan
, covering error tracking and debugging.
Implementation of message queues and event-driven architectures using Kafka, BullMQ and RabbitMQ. Includes examples of how to set up pipelines for real-time data streaming.
Exploration of Node.js core modules, useful for building performant applications with multi-threading, I/O handling, and system-level interactions.
- child_process: Managing child processes for parallel execution.
- cluster: Clustering techniques for scaling Node.js applications.
- fs: File system operations such as reading and writing files.
- stream: Working with Node.js streams for I/O operations.
- worker_threads: Utilizing worker threads for multi-threaded execution.
Setups for monitoring system performance, health checks, and alerts using tools like Prometheus, Grafana, and New Relic.
Integrating payment systems (such as Stripe, PayPal, local payment system) with secure and compliant practices.
A showcase of various backend projects.
- ExpressWithTypescript: An Express.js project scaffolded with TypeScript for type-safe backend development.
- HideApi-RateLimiting-Caching: Implementing API security with hiding routes, rate-limiting, and caching for optimization.
- Microservice/E-commerceWithRabbitMQ: A microservices-based e-commerce project with RabbitMQ handling asynchronous messaging.
- MoviesAPI (public): A public-facing API project built for movie data retrieval and filtering.
- Notification System: A modular notification system supporting email, SMS, and push notifications.
- StreamingLive: A live video streaming application with real-time communication and broadcasting.
A custom API Gateway built with Express.js to manage microservices. A specific use case involves managing servers for an inventory system and a books server, using the gateway for API routing and load balancing.
Real-time communication setups using Socket.io, including chat applications, live updates, and WebSocket handling.
API documentation using Swagger for automatically generating interactive API docs for various services.
Usage of server-side template engines for rendering dynamic HTML pages.
- EJS: Embedded JavaScript template engine for rendering HTML on the server-side.
- Jinja: A Python-based template engine, integrated into the server-side with tools like Flask and Django.
Testing strategies and setups for both unit and integration tests. Focus on frameworks like Jest, vitest for Node.js.
A collection of validation utilities for validating inputs in server-side and API request processing. Includes tools like express-validator
, Zod
, JOI
for request validation.
A scalable and modular server built using the NestJS framework, designed for building efficient and reliable large-scale server-side applications.
To get started with the repository:
-
Clone the repository:
git clone https://github.com/mujibulhaquetanim/Backend-Functionalities.git
-
To run a Specific Project or Template, go to the directory:
cd project-name
-
Install Dependencies:
pnpm install
-
Run the project:
pnpm run dev
Although most of the project script use
dev
orstart
, if that doesn't work, go to the package.json file of that project and see the script for running the project.
Feel free to contribute by submitting a pull request or opening an issue. Please follow the guidelines in CONTRIBUTING.md.
This repository is licensed under the MIT License.
Happy coding! If you have any questions or suggestions, feel free to reach out.