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