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


  1. 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).

  2. 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.

  3. 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.

  4. 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 main branch, the system automatically checks syntax (Linter), runs Unit Tests, and performs a trial build of the source code.

  5. 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.

  6. 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.