Skip to content

unobatbayar/tech-stack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ Technology Stacks Learning Repository

A comprehensive collection of technology stacks, frameworks, and tools for building modern software projects. This repository serves as a learning resource and reference guide for developers exploring different technology combinations.

πŸ†• Latest Additions

T3 Stack

  • T3Stack - Type-safe Next.js full-stack framework

Security & Best Practices

Goal Tool/Technique
Authentication NextAuth.js / Clerk
Authorization protectedProcedure, RBAC
Input validation Zod schemas
Rate limiting Upstash / Middleware
Secrets management .env + server-only access
Prevent spam/abuse Rate limiting, reCAPTCHA
External access Secure CORS setup

Image Storage

  • Cloudinary - Cloud-based image and video management
  • Amazon S3 - Scalable object storage service

Current Project Stack

  • Next.js - React framework for production
  • FastAPI - Modern Python web framework
  • ORM - Object-relational mapping for database abstraction
  • PostgreSQL - Advanced open-source relational database
  • Docker - Containerization platform

πŸ“‹ Table of Contents


πŸ“ Repository Structure

This repository is organized by technology and includes practical examples:

tech-stack/
β”œβ”€β”€ FastAPI/          # FastAPI Python web framework examples
β”œβ”€β”€ Flask/            # Flask Python web framework examples
β”œβ”€β”€ NestJS/           # NestJS TypeScript backend framework
β”œβ”€β”€ NextJS/           # Next.js React framework examples
β”œβ”€β”€ NodeJS/           # Node.js server-side JavaScript examples
β”œβ”€β”€ React/            # React frontend library examples
β”œβ”€β”€ socket.io/        # Real-time communication examples
β”œβ”€β”€ sqlite3/          # SQLite database examples
β”œβ”€β”€ typescript/       # TypeScript language examples
β”œβ”€β”€ Libraries/        # Additional library resources
└── Projects/         # Complete project examples

🎯 Quick Start

Explore by Technology

Navigate to any technology folder to find working examples and tutorials:

  • Python Backends: FastAPI/, Flask/
  • JavaScript/TypeScript: NodeJS/, NextJS/, React/, NestJS/, typescript/
  • Real-time: socket.io/
  • Databases: sqlite3/
  • Additional Resources: Libraries/

Running Examples

Each technology folder contains README files with setup instructions. Common commands:

# Node.js projects
npm install
npm start

# Python projects
pip install -r requirements.txt
python main.py

# TypeScript projects
npm install -g typescript
tsc index.ts

πŸ›  Technology Stacks

Popular Full-Stack Combinations

The MERN Stack

Component Technology Description
MongoDB MongoDB NoSQL document database
Express.js Express.js Web application framework for Node.js
React React JavaScript library for building user interfaces
Node.js Node.js JavaScript runtime environment

The MEAN Stack

Component Technology Description
MongoDB MongoDB NoSQL document database
Express.js Express.js Web application framework for Node.js
Angular AngularJS JavaScript framework for building web applications
Node.js Node.js JavaScript runtime environment

The MEVN Stack

Component Technology Description
MongoDB MongoDB NoSQL document database
Express.js Express.js Web application framework for Node.js
Vue.js Vue.js Progressive JavaScript framework
Node.js Node.js JavaScript runtime environment

The LAMP Stack

Component Technology Description
Linux Linux Operating system
Apache Apache Web server
MySQL MySQL Relational database management system
PHP PHP Server-side scripting language

Frontend Technologies

Modern JavaScript Frameworks

Framework Description Use Cases
React JavaScript library for building user interfaces Single-page applications, component-based UIs
Next.js React framework with SSR and static generation Production-ready React applications, SEO-friendly sites
Vue.js Progressive JavaScript framework Interactive web interfaces, single-page applications
Angular TypeScript-based web application framework Enterprise applications, large-scale projects

Styling & UI

Technology Description
Tailwind CSS Utility-first CSS framework for rapid UI development
TypeScript Strongly typed superset of JavaScript

State Management & Data Fetching

Technology Description
Apollo Client GraphQL client for React with caching and state management

Backend Technologies

Python Frameworks

Framework Description Best For
Flask Lightweight Python web framework Microservices, APIs, small to medium applications
FastAPI Modern, fast Python web framework High-performance APIs, automatic API documentation
Django High-level Python web framework Full-featured web applications, rapid development

JavaScript/TypeScript Frameworks

Framework Description Best For
Node.js JavaScript runtime built on Chrome's V8 Server-side JavaScript, real-time applications
Express.js Minimal web framework for Node.js REST APIs, web applications
NestJS Progressive Node.js framework Scalable server-side applications, TypeScript-first

Java Frameworks

Framework Description
Spring Boot Java framework for building enterprise applications

Ruby Frameworks

Framework Description
Ruby on Rails Full-stack web application framework

API Design

Technology Description
REST API Architectural style using HTTP methods for operations
GraphQL Query language for APIs with flexible data retrieval

ORM & Database Tools

Technology Description
ORM Object-relational mapping for database abstraction
Prisma Next-generation ORM with TypeScript support
SQLAlchemy Python SQL toolkit and ORM

Architecture Patterns

Pattern Description
Backend For Frontend (BFF) Pattern where a separate backend service is created for each frontend application

Database Technologies

Relational Databases

Database Description Use Cases
PostgreSQL Advanced open-source relational database Complex queries, ACID compliance, enterprise applications
MySQL Popular open-source relational database Web applications, content management systems
SQLite Lightweight, file-based database Embedded applications, development, small projects
SQL Server Microsoft's relational database Enterprise applications, Windows ecosystem

NoSQL Databases

Database Description Use Cases
MongoDB Document-oriented NoSQL database Flexible schemas, large-scale applications
Amazon DynamoDB Managed NoSQL database service Serverless applications, high-performance workloads

Object Storage

Technology Description
MinIO AWS S3-compatible object storage solution

Cloud APIs

Service Description
Microsoft Graph API API for accessing Microsoft 365 data (users, groups, calendars)

Mobile Development

Cross-Platform Frameworks

Framework Description Best For
React Native Framework for building native apps with React iOS and Android apps with shared codebase
Flutter Google's UI toolkit for building natively compiled apps High-performance mobile apps, beautiful UIs
Unity Game engine and development platform Games, AR/VR applications
Xamarin Microsoft's cross-platform mobile framework .NET ecosystem, enterprise mobile apps

Native Development

Platform Tools Description
iOS Xcode, Swift, SwiftUI Native iOS application development
Android Android Studio, Kotlin, Jetpack Compose Native Android application development

Mobile Backend Services

Service Description
Firebase Google's mobile and web application platform
Firestore NoSQL document database for mobile and web apps

DevOps & Deployment

Containerization

Technology Description
Docker Platform for containerizing applications

Cloud Platforms

Platform Description Resources
AWS Amazon Web Services cloud platform Getting Started Tutorials
Google Cloud Google Cloud Platform Cloud services and infrastructure
Azure Microsoft Azure cloud platform Enterprise cloud solutions

Deployment Strategies

  • Container Orchestration: Kubernetes, Docker Swarm
  • Serverless: AWS Lambda, Google Cloud Functions, Azure Functions
  • Platform as a Service: Heroku, AWS Elastic Beanstalk

Specialized Technologies

Real-time Communication

Technology Description Use Cases
Socket.IO Real-time bidirectional event-based communication Chat applications, live updates, collaborative tools
WebRTC Real-time communication for web and mobile apps Video/audio calls, peer-to-peer connections
Firebase Realtime Database Cloud-hosted NoSQL database with real-time sync Real-time collaborative applications
Agora.io Real-time engagement platform Video, voice, and live interactive streaming

Socket.IO Resources:

AR/VR Development

Technology Description
Spatial Computing (SwiftUI / RealityKit) Apple's framework for spatial computing applications
Unity VR Unity framework for virtual reality development

Audio & Plug-ins

Technology Description
JUCE Framework Cross-platform C++ framework for audio applications
C++ General-purpose programming language for system programming

Hardware & IoT

Technology Description
Raspberry Pi Single-board computer for hardware projects

Machine Learning Libraries

See Libraries/machine-learning/libraries.txt for a comprehensive list including:

  • Scikit-learn, TensorFlow, Keras, PyTorch
  • XGBoost, LightGBM, CatBoost
  • And more...

πŸ“š Project Examples

This repository contains practical examples organized by technology:

Python Backends

  • FastAPI Projects

    • FastAPI/fastapi-template/ - Production-ready FastAPI template
    • FastAPI/books-microservice/ - Books management microservice
    • FastAPI/prisma_project/ - FastAPI with Prisma ORM
    • FastAPI/metrics/backend/ - Metrics tracking backend
  • Flask Projects

    • Flask/flask_sqlalchemy_postgres/ - Flask with SQLAlchemy and PostgreSQL
    • Flask/froshims/ - Sample Flask application
    • Flask/hello/ - Hello World Flask example

JavaScript/TypeScript

  • Next.js Projects

    • NextJS/my-app/ - Next.js application example
    • NextJS/nextjs-dashboard/ - Dashboard application
  • React Projects

    • React/my-app/ - React application example
  • Node.js Projects

    • NodeJS/ - Express.js server example
  • Real-time

    • socket.io/ - Socket.IO chat application example

Databases

  • SQLite Examples
    • sqlite3/ - SQLite database examples and demos

TypeScript

  • typescript/ - TypeScript language examples and tutorials

πŸŽ“ Learning Resources

Getting Started Guides

Technology-Specific Documentation

Each technology folder contains:

  • Working code examples
  • Setup instructions
  • README files with usage examples

Recommended Learning Path

  1. Start with Fundamentals

    • Choose a language (JavaScript/TypeScript or Python)
    • Learn basic web concepts (HTTP, REST APIs)
  2. Pick a Stack

    • Frontend: React, Next.js, or Vue.js
    • Backend: Node.js/Express, FastAPI, or Flask
    • Database: PostgreSQL, MongoDB, or SQLite
  3. Build Projects

    • Start with simple examples in this repository
    • Gradually build more complex applications
    • Explore different technology combinations
  4. Explore Advanced Topics

    • Real-time communication (Socket.IO)
    • Containerization (Docker)
    • Cloud deployment (AWS, GCP, Azure)
    • Mobile development (React Native, Flutter)

πŸ“ Example Project Stacks

Modern Full-Stack Web Application

Frontend:

  • Next.js (React framework)
  • TypeScript
  • Tailwind CSS
  • Apollo Client (for GraphQL)

Backend:

  • NestJS or FastAPI
  • GraphQL API
  • REST API
  • Prisma ORM

Database:

  • PostgreSQL
  • MinIO (object storage)

DevOps:

  • Docker
  • Kubernetes (for production)

Microservices Architecture

API Services:

  • FastAPI (Python)
  • Flask (Python)
  • Node.js with Express
  • Spring Boot (Java)

Communication:

  • HTTP/REST
  • GraphQL
  • Message queues

Database:

  • PostgreSQL (relational)
  • MongoDB (document)
  • SQLite (development)

Mobile Application Stack

Cross-Platform:

  • React Native
  • Flutter

Backend:

  • Node.js/Express or FastAPI
  • GraphQL or REST API

Database:

  • PostgreSQL
  • SQLite (local storage)
  • Firebase/Firestore

Deployment:

  • App Store Connect (iOS)
  • Google Play Console (Android)

🀝 Contributing

This is a learning repository. Feel free to:

  • Add new technology examples
  • Improve existing documentation
  • Share your learning experiences
  • Suggest new technology stacks

πŸ“„ License

This repository is for educational purposes. Check individual project folders for specific licenses.


Happy Learning! πŸŽ‰

About

Tools, frameworks, and technologies to build, deploy, and maintain software projects

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages