Product MVPs

Building a Production LMS for OneAccess Academy

A CrysoLabs case study on building OneAccess Academy: a production LMS with course access logic, payments, certificates, analytics, chat, and admin operations.

CrysoLabs Team
· 9 min read
Share
OneAccess Academy homepage showing the premium training hero and mentor-focused positioning

The academy needed more than a course website

OneAccess Networking and Cyber Academy is not a simple marketing site with a few course cards. The platform has to support the way a real training business operates: public course discovery, student accounts, enrollments, payment coverage, lesson access, live sessions, exams, support, certificates, and content operations.

That is the kind of product where the hard part is not a single page. The hard part is connecting the public brand, the learner experience, and the admin workflow into one system the team can keep running.

CrysoLabs approached the build as a production learning platform rather than a brochure. The result is a Next.js application backed by MongoDB and Prisma, with an LMS, CMS, analytics, payments, certificate verification, chat, email workflows, media storage, and operational dashboards working from the same product foundation.

OneAccess Academy homepage showing the premium training hero and mentor-focused positioning

What CrysoLabs built

The OneAccess platform combines three surfaces that normally drift apart in education businesses:

  • A public academy website for training, workshops, exams, blog content, careers, contact flows, testimonials, FAQs, and SEO-managed pages.
  • A student LMS where learners can view courses, payments, certificates, notifications, support, chat, exams, and lesson content.
  • An admin operating layer for courses, batches, students, payments, reports, live sessions, certificates, CMS content, media, email templates, audit logs, and support tickets.

The source confirms this as a full application, not a static site. The Prisma schema models users, roles, permissions, course categories, courses, batches, pricing, payment plans, lessons, content blocks, video assets, live sessions, enrollments, payment slips, access states, exams, certificates, workshops, attendance, chat rooms, support tickets, notifications, CMS pages, blog campaigns, media assets, email logs, audit logs, analytics events, and system settings.

That data model matters because it gives the business a durable operating system. A course can be marketed publicly, sold as a cohort or recorded product, paid for in installments, unlocked by month, supported through chat, assessed through exams, and completed with a verifiable certificate.

A public experience that sells the academy

The homepage and training catalog are designed around trust. They lead with industry-focused training, instructor credibility, student outcomes, and direct paths into courses, workshops, exams, and counselor contact.

The public site is also CMS-aware. Pages pull editable sections, FAQs, testimonials, instructor highlights, customers, course categories, exams, and CTA bands through server-side queries. That gives the academy team room to keep pages fresh without asking engineering to hard-code every copy update.

OneAccess training catalog with course statistics and the all courses section

The implementation uses reusable page sections for hero content, course strips, outcomes, academic highlights, certification content, testimonials, YouTube videos, FAQs, and CTA blocks. For a training company, this is important: the marketing site can evolve as offerings change, while the underlying product stays structured.

The LMS workflow is built around access, not just content

Course access in this system is tied to real operational rules. The code includes a payment access calculator that distinguishes full-payment and monthly-payment courses, tracks covered months, calculates the current required month, and evaluates grace periods.

That means the LMS can support a common business reality for training programs: students may enroll in a multi-month course, pay installment by installment, and receive access based on approved coverage.

The lesson availability layer adds another level of product thinking. A lesson may be open because it is a preview, because a video exists, because file material is attached, because a live join window is active, because a recording is ready, or because a scheduled unlock time has arrived. If none of those conditions is true, the UI can explain why the lesson is not available yet instead of simply hiding it.

This is the difference between uploading videos and building a learning system. The platform understands timing, payment state, live classes, recordings, and learner expectations.

Admin operations are treated as part of the product

The admin side is where the project becomes more than a learner portal. The platform includes management surfaces for courses, students, workshops, live sessions, chats, payments, certificates, reports, support tickets, CMS content, media, modules, email templates, audit logs, and settings.

One standout area is the course builder. It supports course-wide and batch-specific structures, modules, lessons, live schedules, videos, files, quick MCQs, text blocks, and local draft recovery while forms are being edited. That is a thoughtful workflow for administrators who are building real curricula over time rather than entering one-off content.

The reports system also shows strong operational thinking. It aggregates payments, enrollments, lesson progress, exam attempts, workshop bookings, certificates, live sessions, support tickets, notifications, and analytics events into revenue trends, enrollment trends, status charts, course rankings, operating health, and risk insights.

The admin dashboards are not decorative. They help the academy see what needs attention: pending payment reviews, unpaid coverage, completion risk, exam outcomes, and certificate backlogs.

Certificates are generated, verified, and managed

The certificate system is one of the clearest examples of production thinking in the codebase.

Certificates are not just uploaded as static files. The platform stores certificate templates, template elements, assignments, certificate records, verification codes, QR links, and issuance state. The generator builds SVG certificates from template elements such as text, images, logos, QR codes, shapes, student names, program titles, issue dates, certificate numbers, and verification URLs.

It also handles multilingual realities by detecting Sinhala text and falling back to suitable font families. For an academy operating in Sri Lanka, that detail matters. It is the kind of small engineering decision that prevents a polished feature from breaking when real local data appears.

The public certificate verification page gives students and employers a way to confirm credentials. For the academy, that turns certificates into trusted digital records rather than simple downloadable images.

Real-time communication and support are built in

The system includes chat rooms for courses, workshops, support, public tickets, and admin-direct communication. Redis pub/sub powers message events, typing state, presence updates, read state, unread counts, room updates, ticket creation, ticket closure, and moderation events.

That architecture gives the LMS a stronger support loop. A student can learn, ask questions, receive reminders, and get help without forcing everything into email or external messaging tools.

Notifications and email are handled as first-class workflows too. The code includes typed notification events for enrollment creation, payment submission, payment due reminders, payment approval, access locking and unlocking, lesson availability, live-session reminders, exam results, certificates, chat replies, unpaid student alerts, syllabus requests, support tickets, and system updates. Email delivery is logged, including status, provider IDs, attachments metadata, entity references, and failure details.

For a business, this reduces operational guesswork. The platform can tell the right person what happened, log the communication, and leave an audit trail.

Architecture choices that support a growing training business

The stack is modern, but the important part is how the pieces are used.

Next.js brings the public website, protected dashboards, API routes, metadata, sitemap generation, and server-side data workflows into one application. Prisma provides a typed boundary around MongoDB models that cover both learning and business operations. NextAuth handles application authentication, while role and permission helpers separate students, instructors, support staff, admins, and super admins.

Cloudflare R2 supports media and file storage. Bunny video integration supports external video assets and privacy modes. Redis supports real-time chat events and presence. Resend and React Email support transactional communication. Recharts turns operational records into admin dashboards.

None of those integrations is interesting on its own. Together, they show a platform designed for the real shape of an academy: content, cohorts, payments, support, communication, certification, analytics, and content management all have to cooperate.

Built for responsive, operational use

The public interface is responsive, and the LMS component system includes mobile dashboard navigation, mobile drawers, reusable headers, tone-based panels, metric cards, badges, progress indicators, empty states, and payment-unlock alerts.

Mobile view of the OneAccess Academy homepage with responsive course discovery content

This matters because academy users do not all sit at a desktop. Prospective students browse from phones. Learners check payments, notifications, and course access on the move. Admin users still need dense operational views that work for repeated daily use.

CrysoLabs designed the product with those different contexts in mind instead of forcing every user into the same screen pattern.

What this project says about CrysoLabs

The OneAccess Academy platform is a strong CrysoLabs portfolio piece because it shows the kind of engineering work that sits between a marketing site and a full internal operating system.

The project required product judgment across multiple layers:

  • Public pages that can convert visitors into learners.
  • LMS workflows that respect payment coverage and lesson availability.
  • Admin tools that make content, batches, payments, support, and certificates manageable.
  • Analytics that surface operational risk instead of only showing vanity metrics.
  • Communication systems that connect in-app notifications, email, chat, and support tickets.
  • Certificate infrastructure that supports verification and trust.

That is the shape of serious software. The value is not only that the platform looks good. It is that the system understands the business process behind the screens.

The result

For OneAccess, the expected business value is clearer operations, stronger learner trust, easier course management, better payment visibility, and a more professional digital experience around training and certification.

For CrysoLabs, the project demonstrates the ability to build production-ready platforms with marketing, LMS, operations, analytics, and automation working together.

Need a platform that connects customer acquisition, internal operations, payments, learning, analytics, and support? CrysoLabs designs and develops production-ready web systems tailored to the way real businesses run.

For projects like these, contact CrysoLabs: Contact us, visit crysolabs.com, email [email protected], or message us directly on WhatsApp.

CrysoLabs Team

The CrysoLabs editorial desk - shipping notes from the build floor.

Keep reading