Technologies used in the project
Frontend Frameworks and Libraries
- Next.js - A React framework for building server-rendered applications
- React - A JavaScript library for building user interfaces
- Moment.js - A JavaScript date library for parsing, validating, manipulating, and formatting dates
UI Libraries
- MUI - A popular React UI component library
- Notistack - A notification system for React
State Management
- Zustand - A small, fast and scaleable bearbones state-management solution
Persistent Data Storage
- Prisma - A modern database toolkit
- PostgreSQL - A powerful, open source object-relational database system
Task Queue
- Bull - A Node.js job and message queue library
- Redis - An open source, in-memory data structure store, used as a database, cache, and message broker
Deployment
- Docker - A tool for building and running applications in containers
- Docker Compose - A tool for defining and running multi-container Docker applications
Development
- Node.js - A JavaScript runtime for building server-side applications
- TypeScript - A typed superset of JavaScript that compiles to plain JavaScript
- Nodemon - A utility that restarts the server when file changes are detected
- TS-Node - A TypeScript execution and REPL for Node.js
Code Quality
- ESLint - A tool for identifying and reporting on patterns found in ECMAScript/JavaScript code
- Prettier - An opinionated code formatter (used as an ESLint plugin)
- TypeScript ESLint - An ESLint parser which leverages TypeScript to parse JavaScript
Backend and API
- Express - A fast, unopinionated, minimalist web framework for Node.js
- OpenAPI - A way to describe RESTful APIs
- Swagger - A set of open-source tools built around the OpenAPI Specification
- openapi-typescript - A tool to generate TypeScript types from OpenAPI specifications
- openapi-fetch - A tool to generate API clients from OpenAPI specifications
- Typia - A tool to generate is-a type guards from TypeScript interfaces
- YouTube-DL-Exec - A node.js wrapper for youtube-dl / yt-dlp
- Winston - A logger for just about everything