A modern, multilingual learning platform for mastering DevOps practices, CI/CD, Cloud Computing, and Infrastructure as Code.
- Overview
- Features
- Tech Stack
- Prerequisites
- Installation
- Configuration
- Running the Application
- Project Structure
- DevOps Practices
- Contributing
- License
DevOps Academy is a comprehensive e-learning platform designed to help developers and IT professionals master modern DevOps practices. The platform offers:
- π Structured courses on CI/CD, Docker, Kubernetes, and more
- π₯ Video-based learning with secure streaming
- π Multi-language support (English, French, Arabic)
- π₯ User management and course enrollment
- π Blog/articles for industry insights
- π± Responsive, mobile-friendly design
- User Authentication & Authorization - Secure JWT-based authentication
- Course Management - Browse, enroll, and track progress
- Video Streaming - Secure video content delivery
- Blog System - DevOps articles and best practices
- Admin Dashboard - Content and user management
- Multilingual Support - i18n with English, French, and Arabic
- Responsive Design - Mobile-first approach with Tailwind CSS
- π CI/CD pipeline examples
- π³ Docker containerization tutorials
- βΈοΈ Kubernetes orchestration courses
- βοΈ Cloud platform integration (AWS, Azure)
- ποΈ Infrastructure as Code (Terraform, Ansible)
- π Monitoring and logging best practices
- React 18.3 - Modern UI library
- TypeScript - Type-safe development
- React Router - Client-side routing
- i18next - Internationalization
- Tailwind CSS - Utility-first styling
- Axios - HTTP client
- Node.js - Runtime environment
- Express.js - Web framework
- TypeScript - Type-safe backend
- MySQL - Relational database
- JWT - Authentication tokens
- Multer & Sharp - File upload and image processing
- Helmet & CORS - Security middleware
Before you begin, ensure you have the following installed:
- Node.js >= 18.x
- npm >= 9.x or yarn >= 1.22
- MySQL >= 5.7 or MySQL 8.x
- Git (for version control)
git clone https://github.com/yourusername/devops-academy.git
cd devops-academycd backend
npm installcd frontend
npm installCreate a .env file in the backend directory:
# Server Configuration
PORT=5001
NODE_ENV=development
# Database Configuration
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=devops_academy
# JWT Configuration
JWT_SECRET=your_super_secret_jwt_key_change_in_production
JWT_EXPIRES_IN=7d
# CORS Configuration
CORS_ORIGIN=http://localhost:3000
# File Upload Configuration
MAX_FILE_SIZE=100MB
UPLOAD_PATH=./uploadsCreate a .env file in the frontend directory:
REACT_APP_API_URL=http://localhost:5001- Create the database:
CREATE DATABASE devops_academy CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;- Run migrations (if available):
cd backend
npm run migratecd backend
npm run devBackend will run on http://localhost:5001
cd frontend
npm startFrontend will run on http://localhost:3000
cd backend
npm run build
npm startcd frontend
npm run build:proddevops-academy/
βββ backend/
β βββ src/
β β βββ config/ # Configuration files
β β βββ middleware/ # Express middleware
β β βββ routes/ # API routes
β β βββ services/ # Business logic
β β βββ types/ # TypeScript types
β β βββ app.ts # Express app setup
β β βββ server.ts # Server entry point
β βββ uploads/ # User-uploaded files
β βββ migrations/ # Database migrations
β βββ package.json
β βββ tsconfig.json
β
βββ frontend/
β βββ public/ # Static assets
β βββ src/
β β βββ components/ # React components
β β βββ pages/ # Page components
β β βββ lib/ # Utilities and services
β β βββ locales/ # i18n translations
β β βββ styles/ # CSS files
β β βββ App.tsx # Root component
β β βββ index.tsx # Entry point
β βββ package.json
β βββ tsconfig.json
β
βββ .gitignore
βββ README.md
This project demonstrates several DevOps best practices:
- Git for source control
- Branching strategy (main, develop, feature branches)
- Semantic versioning
# Example: .github/workflows/ci.yml
name: CI Pipeline
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: npm install
- name: Run tests
run: npm test
- name: Build
run: npm run build# Example Dockerfile for backend
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
EXPOSE 5001
CMD ["npm", "start"]- Docker Compose for local development
- Terraform scripts for cloud infrastructure (to be added)
- Kubernetes manifests for container orchestration (to be added)
- Structured logging with Morgan
- Error tracking (to be implemented)
- Performance monitoring (to be implemented)
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow TypeScript best practices
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
- Follow the existing code style
This project is licensed under the MIT License - see the LICENSE file for details.
- Project Lead - @Azizkh07
- React community for excellent documentation
- Node.js ecosystem for powerful tools
- DevOps community for best practices and inspiration
For questions or support, please contact:
- Email: support@devopsacademy.com
- Website: https://devopsacademy.com
Built with β€οΈ by the DevOps Academy Team