A modern, full-stack web application for sharing DevOps resources and courses. Built with HTML, CSS, JavaScript frontend and Node.js/MongoDB backend.
- Modern Design: Beautiful, responsive UI with gradient color scheme and smooth animations
- Interactive Components: Dynamic resource filtering, smooth scrolling, and engaging animations
- Mobile Responsive: Fully responsive design that works on all devices
- Modern Technologies: Uses CSS Grid, Flexbox, and modern JavaScript features
- RESTful API: Well-structured API endpoints for all features
- MongoDB Integration: Robust data models for resources, courses, and users
- Authentication Ready: User registration and login system
- Newsletter System: Email subscription management
- Data Validation: Comprehensive input validation using express-validator
- Hero Section: Eye-catching landing area with floating DevOps tool cards
- Resources: Filterable collection of DevOps tutorials, guides, and tools
- Courses: Comprehensive DevOps courses with detailed curriculum
- Community: Newsletter subscription and community features
- Admin Features: Statistics and content management endpoints
- HTML5: Semantic markup
- CSS3: Modern styling with CSS Grid, Flexbox, animations
- JavaScript (ES6+): Interactive functionality and API integration
- Font Awesome: Icons
- Google Fonts: Typography (Inter font family)
- Node.js: Runtime environment
- Express.js: Web framework
- MongoDB: Database
- Mongoose: ODM for MongoDB
- Express Validator: Input validation
- Helmet: Security middleware
- CORS: Cross-origin resource sharing
- Rate Limiting: API protection
DevOps Blog/
βββ frontend/ # Frontend application
β βββ index.html # Main HTML file
β βββ css/
β β βββ style.css # Main stylesheet
β βββ js/
β β βββ main.js # JavaScript functionality
β βββ assets/
β βββ images/ # Image assets
βββ backend/ # Backend API
β βββ server.js # Main server file
β βββ package.json # Dependencies and scripts
β βββ .env # Environment variables
β βββ models/ # Database models
β β βββ Resource.js # Resource model
β β βββ Course.js # Course model
β β βββ User.js # User model
β βββ routes/ # API routes
β β βββ resources.js # Resource endpoints
β β βββ courses.js # Course endpoints
β β βββ users.js # User endpoints
β β βββ newsletter.js # Newsletter endpoints
β βββ config/
β βββ seedData.js # Initial data seeding
βββ README.md # Project documentation
- Node.js (v16 or higher)
- MongoDB (local installation or MongoDB Atlas)
- Git
-
Clone the repository
git clone <repository-url> cd "DevOps Blog"
-
Install backend dependencies
cd backend npm install -
Set up environment variables
cp .env.example .env # Edit .env file with your configuration -
Start MongoDB
- For local MongoDB:
mongod - Or use MongoDB Atlas (cloud)
- For local MongoDB:
-
Start the backend server
npm run dev # or for production npm start -
Open the application
- Navigate to
http://localhost:3000 - The frontend is served by the backend server
- Navigate to
Create a .env file in the backend directory:
NODE_ENV=development
PORT=3000
MONGODB_URI=mongodb://localhost:27017/devops-bootcamp
JWT_SECRET=your-super-secret-jwt-keyGET /api/resources- Get all resources (with filtering and pagination)GET /api/resources/featured- Get featured resourcesGET /api/resources/:id- Get single resourcePOST /api/resources- Create new resourcePUT /api/resources/:id/like- Like a resource
GET /api/courses- Get all courses (with filtering and pagination)GET /api/courses/featured- Get featured coursesGET /api/courses/:id- Get single coursePOST /api/courses/:id/enroll- Enroll in coursePOST /api/courses/:id/reviews- Add course review
POST /api/users/register- Register new userPOST /api/users/login- User loginGET /api/users/profile/:id- Get user profilePUT /api/users/profile/:id- Update user profile
POST /api/newsletter/subscribe- Subscribe to newsletterPOST /api/newsletter/unsubscribe- Unsubscribe from newsletterGET /api/newsletter/stats- Get newsletter statistics
- Primary:
#667eea(Blue) - Secondary:
#764ba2(Purple) - Accent:
#f093fb(Pink) - Success:
#10b981(Green) - Warning:
#f59e0b(Orange) - Error:
#ef4444(Red)
- Font Family: Inter (Google Fonts)
- Headings: 700 weight
- Body: 400 weight
- UI Elements: 500-600 weight
- Buttons: Rounded corners, gradient backgrounds, hover effects
- Cards: Shadow elevation, hover animations
- Forms: Clean inputs with validation states
- Navigation: Sticky header with blur backdrop
# Backend development with auto-reload
npm run dev
# Start production server
npm start
# Run tests (when implemented)
npm test
# Seed database with initial data
npm run seedThe website is fully responsive with breakpoints:
- Desktop: 1200px and above
- Tablet: 768px - 1199px
- Mobile: Below 768px
- Helmet: Security headers
- Rate Limiting: API request throttling
- Input Validation: Comprehensive validation using express-validator
- CORS: Configured cross-origin requests
- Password Hashing: Secure password storage with bcrypt
- User authentication with JWT
- File upload for resources
- Advanced search functionality
- Email notifications
- Payment integration for courses
- Video streaming for course content
- Discussion forums
- Mobile app
- AI-powered recommendations
- Live streaming capabilities
- Advanced analytics dashboard
- Multi-language support
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Use ESLint for JavaScript linting
- Follow semantic commit messages
- Write descriptive variable and function names
- Add comments for complex logic
- Ensure responsive design for all new features
This project is licensed under the MIT License - see the LICENSE file for details.
- DevOps Bootcamp Team - Initial work and design
- Community Contributors - Feature enhancements and bug fixes
For support and questions:
- Email: support@devopsbootcamp.com
- Documentation: Project Wiki
- Issues: GitHub Issues
- Font Awesome for the amazing icons
- Google Fonts for typography
- MongoDB for the robust database
- Express.js community for the excellent framework
- All the open-source contributors who make projects like this possible
Happy Learning! π