This repository contains my progress and projects while learning backend development with Node.js and Express.js.
The goal of this course is to understand how to build server-side applications using modern Node.js technologies, including working with databases, authentication, sessions, file uploads, email, and application architecture.
- Node.js
- Express.js
- JavaScript (ES Modules)
- MVC Architecture
- REST APIs
- Middleware
- Routing
- Authentication & Authorization
- Sessions & Cookies
- Sequelize ORM
- MySQL
- Database Relationships
- Template Engines (EJS)
- File Uploads
- Multer
- Static File Serving
- Password Reset & Token-Based Workflows
- Email / SMTP
- Error Handling
- Environment Variables
- Security Best Practices
node-course/
│
├── 1_...
├── 2_...
├── 3_...
├── ...
├── 20_...
Each folder represents a milestone or concept learned during the course.
The projects gradually evolve from simple Node.js applications into more structured Express.js applications using databases, authentication, sessions, and file storage.
- Node.js fundamentals
- Express server setup
- Routing and middleware
- MVC pattern
- Working with databases
- Sequelize ORM
- MySQL
- Database relationships
- Authentication system
- Sessions and cookies
- Password hashing
- Password reset workflow
- Email / SMTP integration
- File uploads
- Multer
- Serving static files
- Handling uploaded images
- REST API development
- Automated testing
- Docker
- Deployment
- Advanced backend architecture
- Creating HTTP servers
- Handling requests and responses
- Building middleware
- Organizing routes and controllers
- Working with Express routers
- Serving static assets
- Handling errors
- Creating Sequelize models
- CRUD operations
- Database relationships
- Associations between models
- Querying relational data
- Persisting application data with MySQL
- User registration and login
- Password hashing
- Session management
- Cookies
- Protecting authenticated routes
- Authorization
- Password reset tokens
- Token expiration
- Sending password-reset emails
- Handling multipart/form-data requests
- Uploading files with Multer
- Configuring disk storage
- Generating unique filenames
- Storing uploaded files
- Serving uploaded files through Express
- Associating uploaded images with database records
- Deleting uploaded files when their associated records are removed
- MVC architecture
- Separation of routes, controllers, models, and views
- Middleware-based request processing
- Environment-based configuration
- Reusable application components
This repository is mainly for learning, experimentation, and documenting my backend development journey.
Rather than only following tutorials, the goal is to understand the underlying concepts well enough to eventually design and build production-ready applications independently.
The knowledge from this course will be used to build scalable backend applications, APIs, and full-stack products.
Completed through Folder 20 — File Uploads
The project has progressed from basic Node.js and Express concepts to database-backed applications with authentication, sessions, password-reset functionality, email integration, and file uploads.
- Complete the remaining course modules
- Build dedicated REST APIs
- Add automated tests
- Learn Docker and containerized development
- Deploy applications to production
- Improve architecture and scalability
- Add logging and monitoring
- Implement stronger security practices
- Build independent projects without following a tutorial