Skip to content

EightCubed/Social-media-Redis-MySQL-App

Repository files navigation

Proposed project structure

redis-caching/
├── cmd/
│   └── server/
│       └── main.go              # Application entry point
├── pkg/
│   ├── api/
│   │   ├── handlers/
│   │   │   ├── users.go         # User-related API handlers
│   │   │   ├── posts.go         # Post-related API handlers
│   │   │   ├── comments.go      # Comment-related API handlers
│   │   │   └── likes.go         # Like-related API handlers
│   │   ├── middleware/
│   │   │   ├── auth.go          # Authentication middleware
│   │   │   └── logging.go       # Logging middleware
│   │   └── routes.go            # API route definitions
│   ├── types/                   # Domain models and shared data structures
│   │   ├── user.go              # User domain model
│   │   ├── post.go              # Post domain model
│   │   ├── comment.go           # Comment domain model
│   │   ├── like.go              # Like domain model
│   │   ├── request.go           # API request structures
│   │   └── response.go          # API response structures
│   ├── config/
│   │   └── config.go            # Configuration loading and management
│   ├── database/
│   │   ├── mysql/
│   │   │   ├── connection.go    # MySQL connection management
│   │   │   ├── migrations/      # Database schema migrations
│   │   │   └── models/          # Database-specific models
│   │   │       ├── user.go
│   │   │       ├── post.go
│   │   │       ├── comment.go
│   │   │       └── like.go
│   ├── cache/
│   │   ├── redis/
│   │   │   ├── connection.go    # Redis connection management
│   │   │   ├── posts.go         # Cache logic for posts
│   │   │   ├── comments.go      # Cache logic for comments
│   │   │   └── likes.go         # Cache logic for likes
│   │   └── interfaces.go        # Cache interfaces for testing/mocking
│   ├── services/
│   │   ├── users.go             # User business logic
│   │   ├── posts.go             # Post business logic
│   │   ├── comments.go          # Comment business logic
│   │   ├── likes.go             # Like business logic
│   │   └── trending.go          # Trending posts algorithm
│   └── utils/
│       ├── errors.go            # Error handling utilities
│       └── validation.go        # Input validation utilities
├── internal/
│   └── metrics/                 # Internal metrics collection
├── deployments/
│   ├── kubernetes/
│   │   ├── mysql/
│   │   │   ├── statefulset.yaml # MySQL StatefulSet configuration
│   │   │   ├── service.yaml     # MySQL Service configuration
│   │   │   └── pvc.yaml         # Persistent Volume Claim
│   │   ├── redis/
│   │   │   ├── deployment.yaml  # Redis Deployment configuration
│   │   │   └── service.yaml     # Redis Service configuration
│   │   └── api/
│   │       ├── deployment.yaml  # API Deployment configuration
│   │       └── service.yaml     # API Service configuration
│   └── docker/
│       ├── Dockerfile           # Docker configuration for the API
│       └── docker-compose.yml   # Docker Compose for local development
├── scripts/
│   ├── setup.sh                 # Setup script for local development
│   └── deploy.sh                # Deployment script for Minikube
├── tests/
│   ├── integration/             # Integration tests
│   └── unit/                    # Unit tests
├── go.mod                       # Go module definition
└── README.md                    # Project documentation

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages