B2B Internship Management SaaS

Developed a multi-tenant web application managing the entire internship lifecycle during my internship at Vanness Plus Consulting Co., Ltd.

Role Intern Full Stack Developer
Date Apr 2025 - June 2025
Stack Laravel, MySQL, JavaScript, Tailwind CSS
View Code

Overview

During my internship at Vanness Plus Consulting Co., Ltd., I contributed to a B2B Software-as-a-Service (SaaS) platform built with Laravel 10 designed to streamline the entire internship lifecycle. The system serves multiple companies (HR organizations) with role-based workflows for managing interns from application submission through onboarding, performance tracking, and final offboarding.

Key Features

  • Multi-Tenant Architecture: Database structure that isolates data by HR organization (via hr_account_id), allowing each company to manage their own internship programs and intern records securely.
  • Comprehensive Intern Portal: End-to-end features for interns including application submission, profile management, daily activity reporting, timesheet tracking, leave requests, and offboarding workflows.
  • Application & Task Management: Submission of applications with required documents, automated task generation for each application, and status tracking through multiple stages.
  • Performance Monitoring: Daily reports, feedback systems, and skill test recording that HR can review and evaluate intern performance in real-time.
  • Role-Based Authentication: Distinct authentication guards and dashboards for three user types—Interns, HR Managers, and System Admins.

Challenges & Solutions

Challenge: Designing a secure B2B SaaS system required careful planning of the database structure to ensure strong multi-tenant data isolation—each company's HR must only see their own interns and programs, while the system supports different subscription tiers (free, standard, premium).

Solution: I designed a robust Relational Database Structure prioritizing Data Integrity and Multi-tenancy Isolation using MySQL and DBeaver. By implementing Foreign Key and Unique Constraints at the schema level, I ensured secure data boundaries between different companies. Additionally, I optimized application performance by utilizing Eager Loading (with()) in Laravel to eliminate N+1 query problems, ensuring efficient data retrieval across complex relationships such as Interns, Programs, and Applications.

Next Project

AI Security Sentinel

View Case Study