Introduction
GoMentee is a learning management platform built with Laravel and Vue.js. It provides students with access to courses, interactive features, and integrated payments. The platform required additional functionality to complete its dashboard, alongside significant performance and codebase improvements to make it production-ready.
Website: https://gomentee.com/
Objectives
- Complete the dashboard features and ensure they were fully functional.
- Refactor the codebase to align with modern software engineering best practices.
- Optimize the database for performance and scalability.
- Standardize the frontend with Vue.js for consistency.
- Add payment integrations for the local market (Esewa and Khalti).
- Deploy the platform with proper CI/CD pipelines and scalable infrastructure.
- Ensure the system could handle high traffic volumes during launch campaigns.
Process
The development was carried out in two major phases:
Phase 1: Feature Completion
- Implemented missing dashboard features, including analytics, chat, and course purchasing.
- Integrated Esewa and Khalti payment gateways (Nepal) for local transactions.
Phase 2: Refactoring & Optimization
- Refactored code to follow SOLID principles and improve maintainability.
- Replaced inconsistent jQuery usage with Vue.js across the frontend.
- Improved database performance by:
- Adding proper indexing.
- Writing optimized queries.
- Restructuring inefficient logic.
- Applied caching and other performance techniques where applicable.
- Set up AWS infrastructure and implemented CI/CD pipelines with staging, development, and production environments.
Design
The branding and color palette for GoMentee had already been defined. However, it was being inconsistently applied across the platform β for example, the student dashboard and the home page looked completely different.
Rather than conducting new UI/UX research, the focus was on bringing consistency to the user experience by:
- Applying the same brand colors and typography across all modules.
- Standardizing layouts so the dashboard and home page aligned visually.
- Ensuring components followed a uniform design language, improving usability and reducing confusion.
This approach ensured a cohesive experience while staying true to the existing brand identity.
Technical Details
- Frontend: Vue.js for dynamic UI and dashboard features.
- Backend: Laravel for business logic and API endpoints.
- Database: MySQL with optimized queries and indexing.
- Payments: Esewa and Khalti integrations for course purchases.
- Infrastructure: AWS hosting with CI/CD pipelines (staging, dev, production).
- Other: Refactoring to SOLID principles, caching strategies, and load handling improvements.
Challenges & Solutions
Challenge 1: Inconsistent Frontend Frameworks
- The platform mixed jQuery and Vue.js, leading to unpredictable behavior and difficulty in maintaining the codebase.
- Solution: Replaced jQuery usage entirely with Vue.js, standardizing the frontend stack and ensuring consistent, component-driven development across all modules.
Challenge 2: Poor Database Design and Inefficient Queries
- Database queries were unoptimized, with missing indexes and poor relational structuring, resulting in long load times and bottlenecks under traffic.
- Solution: Implemented proper indexing, rewrote queries for efficiency, and applied caching strategies. These improvements reduced response times and ensured smooth performance at scale.
Challenge 3: Codebase Lacked Software Engineering Principles
- The original code ignored basic software engineering best practices, making it difficult to extend or maintain.
- Solution: Refactored core modules using SOLID principles and modularized business logic, significantly improving maintainability and scalability.
Challenge 4: Inconsistent Branding Across Pages
- The student dashboard and the home page looked completely different, with brand colors and typography applied inconsistently.
- Solution: Standardized the design system by aligning the dashboard and homepage to the existing branding. This created a cohesive user experience without requiring a full redesign.
Outcome
After optimization and deployment:
- The system was successfully launched with a CI/CD pipeline and robust AWS setup.
- On launch day, the site handled arouund 5,000 signups driven by ads without performance issues.
- Load times were drastically reduced due to database indexing and optimized queries.
- A maintainable codebase was established, allowing for smoother future development.
- The dashboard became feature-rich with analytics, chat, and course purchasing fully functional.
Conclusion
GoMentee evolved from an incomplete and poorly optimized codebase into a production-ready, scalable learning management platform. By completing dashboard features, refactoring code to modern standards, optimizing database queries, and implementing scalable infrastructure, the platform successfully handled high-traffic conditions and provided a consistent, branded experience for learners. These improvements positioned GoMentee to grow sustainably while delivering a reliable experience for thousands of users.