This module helps interns perfect the mindset of a Modern Full-stack Developer / DevOps Engineer. You will master the modern software development lifecycle from source code management, automating integration/deployment processes, to using foundational Cloud services to bring products to a Production environment.
Required knowledge to grasp
Advanced Source Code Management (Git/GitHub): Deep understanding of Git Workflow (Branches, Pull Requests, Merge Conflict, Rebasing).
CI/CD Concepts: Clearly understand why Continuous Integration and Continuous Deployment are needed in software projects.
Cloud Service Models: Differentiate between BaaS (Backend-as-a-Service) model of Supabase and PaaS (Platform-as-a-Service) model of Render/Vercel.
Execution sequence
Initialize and Register Resources:
Access https://dev.mdcgroup.vn to declare internship project information.
Create accounts and set up environments on cloud platforms: GitHub, Supabase, Render, and Vercel (using student/personal accounts as instructed).
Build Database Structure and Backend on Supabase:
Initialize a new project on Supabase, set up an example PostgreSQL database.
Configure data tables, set up Row Level Security (RLS) policies to protect data.
Enable Authentication features (Email/Password or Google OAuth login) provided by Supabase.
Develop and Package Application Source Code:
Build a simple Full-stack web application (e.g., Next.js or React + Node.js) directly connecting to Supabase's database and auth.
Push code to a secure Repository on GitHub.
Set up automated CI/CD pipeline using GitHub Actions:
Write workflow configuration file (.github/workflows/deploy.yml) in YAML format.
Set up automation process: Whenever there is a Push or Merge Pull Request to the
mainbranch, the system automatically checks syntax (Linter), runs Unit Tests, and performs a trial build of the source code.
Multi-platform Deployment:
Frontend (Vercel): Connect the Repository with Vercel to automatically deploy the user interface. Configure Environment Variables securely.
Backend/Worker Service (Render): For background services or separate Node.js/Python APIs, configure automatic deployment to Render.
Test and Monitor: Test a small code change locally, push it to GitHub, and observe the entire automated flow from GitHub Actions circulating data, triggering builds, and updating new versions directly on Vercel/Render without manual intervention.
Acceptance of results
Multiple-choice test: Complete a multiple-choice test on Git knowledge, CI/CD processes, and Cloud application architecture on the internal system.
Questions & Proposals: Propose a solution for secure Secrets Management on GitHub Secrets and how to optimize GitHub Actions build time.
Report results: Submit a compiled document including: Data flow architecture diagram (Git -> Actions -> Deploy), link to the live application running on Vercel/Render, and link to the fully configured Supabase database Dashboard.
Weekend discussion: Directly present your automated CI/CD process, share how to handle GitHub Actions build failures during the Saturday intern meeting.