Selected work / Case study 02

Braimy.

Building an AI-assisted learning platform
for students in Nepal.

Bringing learning material, question search, community discussion, and an AI assistant into one place, with mathematical content in mind throughout.

ROLE
Full-stack Developer
TIMELINE
–
TEAM
Grew to five developers, including me, and two designers
SCOPE
Web app, admin, backend · Infrastructure
ONE PLACE TO LEARN

Find. Study. Ask.

One place to learn.
Many kinds of content.

Braimy served students in grades 10–12 in Nepal, bringing learning resources, question search, AI assistance, and community support into one place.

A student could look for an existing explanation, work through a course, ask in the forum, or continue a conversation with Big-B. Mathematics made each of those harder: an equation could arrive as typed notation, formatted editor content, or a photograph, and a system that handled ordinary paragraphs well could still lose the expression or miss the right lesson.

My part in the product

As a Full-stack Developer, I built the initial web application, admin tools, editors, and backend, and contributed to interface design. Other developers later joined and contributed to those areas.

I kept direct responsibility for Big-B and the knowledge-base service, semantic and image search, community real-time features, and infrastructure. Product design, educational material, community development, and the company’s growth depended on other contributors.

Contribution by area
Student web application
Built the initial application and responsive UI; later development was shared with teammates
Admin and content-authoring tools
Built the initial implementation; teammates later contributed
Math and Markdown editing
Built the editors and worked on equation editing, rendering, and compatibility
Backend
Built the NestJS backend and its integration with the legacy Express API; later work included other developers
Big-B and knowledge base
Built and managed the assistant integration and retrieval service
Search
Built and managed semantic search and image-to-question search
Learning workflows
Built initial courses, progress, personalization, streaks, and points; later shared development
Community and real-time features
Built and managed forums, notifications, and real-time updates
Delivery
Built and managed deployment, infrastructure, and monitoring

Technical foundation

  • React
  • TypeScript
  • Lexical
  • NestJS
  • Fastify
  • Express.js
  • MongoDB
  • Mongoose
  • Typegoose
  • MongoDB Atlas Vector Search
  • Gemini
  • Mathpix OCR
  • Cloudinary
  • Bull
  • Redis
  • Socket.IO
  • Docker
  • PM2
  • GitHub Actions
Historical landing page. My implementation scope was web and backend; the phone framing doesn’t mean I built a native mobile app. Figures printed on the page are its marketing copy, not metrics this case study claims.

Follow a question.

From finding material to asking for help.

Product composition · Select to enlarge.

Find relevant learning material.

Students could search lessons, courses, and discussions without knowing where content lived, with subject, grade, and other metadata adding context. They could also photograph a question: its text was extracted and used for search.

My contributionI built and managed semantic search and image-to-question search, which used Mathpix OCR and Cloudinary uploads.

Study and track progress.

Courses organized lessons into chapters, structured around questions and answers. Enrollment, progress tracking, and discovery based on a student’s selected interests sat alongside streaks and points.

My contributionI built the initial courses, progress, personalization, streaks, and points functionality; later development was shared with teammates.

Ask Big-B or the community.

Big-B appeared as a dedicated chat, as AI responses alongside search, and as automatic answers to forum questions. Students could also join community discussions and receive notifications.

My contributionI built and managed the Big-B integration and knowledge-base service, plus forums, notifications, and real-time updates.

Screens come from a historical feature presentation with sample content and marketing framing. They illustrate the product, not response quality or speed, and the phone framing doesn’t imply native mobile work.

Equations,
not pictures of them.

Complex expressions didn’t always edit or render reliably, so authors sometimes uploaded equations as images instead.

Students, teachers, and content staff used the editor for equations, images, tables, code, and mixed rich text. I built the Lexical-based editing experience and worked on equation editing, rendering, and compatibility, so an expression stayed understandable when someone else opened the lesson or answer.

Easier, not measured

Equation authoring became easier, based on my recollection of the workflow. I don’t have a measured reduction in editing time or equation-related failures.

Why images fell short

An image could display an expression, but changing it meant replacing the image rather than editing the equation. The lasting lesson: mathematical content needs explicit attention throughout an authoring system, from creating and revising it to saving and reading it.

Relevant material.
Then an answer.

Big-B needed to answer using relevant educational material. Connecting a model API was only one part of that.

I built and managed both the knowledge-base service and its application integration. Source material came from admin uploads and content collected from the web.

Material intake

Admin-uploaded and web-collected learning content.

Preparation

Remove duplicates and split documents into passages.

Retrieval storage

Store the prepared material in vector storage so relevant passages can be found for a question.

Question handling

Retrieve the passages relevant to the user’s question.

Generation

Supply the retrieved passages to Gemini for answer generation.

Product integration

Deliver the answer through chat, search, or the forum workflow.

Generating an answer takes longer than retrieving existing content, so it ran outside the immediate action. After a forum question was posted, a background job called the knowledge-base service, saved the response, and used real-time messaging to deliver it. Search could return results first and deliver a queued AI answer separately.

ASYNCHRONOUS ANSWERS · CONCEPTUAL ORDER, NOT TIMED
ForumQuestion postedBackground job queued · worker calls the knowledge-base serviceAnswer saved and delivered in real time
SearchExisting results returnedAI answer queued separatelyAnswer delivered when ready
Responsiveness versus state

The interface had to distinguish an accepted action from an available answer, and the backend had to connect delayed results to their originating question or user.

Answer review

Admins could review answers, flag incorrect ones, and exclude them until a corrected answer was provided. That did not mean every generated response was verified before a student saw it, and retrieved context doesn’t guarantee correctness. The benefit was a way to find problematic answers and remove them from use.

Braimy’s description of Big-B as “trained” on a large question dataset referred to using that dataset in the learning system. The work described here is retrieval, not fine-tuning a foundation model.

Built alongside.
Kept running.

I built a NestJS backend on Fastify that worked alongside the existing Express API, sharing its MongoDB database and keeping authentication compatible with the legacy application. The two coexisted; it was not a completed replacement of every Express feature.

ALREADY IN PLACE

Express API

The legacy application.
One shared MongoDB database.

BUILT ALONGSIDE

NestJS.

TypeScript on Fastify, with Mongoose and Typegoose models.

HOW RESPONSIBILITIES WERE SPLIT
01

The main backend coordinates.

Handled requests, stored AI responses, and connected them to the workflow they came from.

02

A separate service answers.

The knowledge-base service handled Big-B’s retrieval and answer generation.

03

Redis carries the work between.

Bull queues for background jobs, and a Socket.IO Redis adapter for distributing real-time messages.

DELIVERY & INFRASTRUCTURE

As other developers joined the application, admin tools, and backend, I continued managing deployment, infrastructure, and monitoring. Docker and PM2 ran the backend, with GitHub Actions in the delivery setup. These are implementation choices, not evidence of a particular uptime or concurrency level.

DockerPM2GitHub ActionsRedisSocket.IO

Shipped with a team.
Learned from content.

The most useful lesson was to preserve the meaning of educational content as it moved between systems.

Notation had to stay editable and readable. Search had to account for how students expressed their questions. AI needed relevant context and a correction process.

01

Initial platform delivered

Built the initial web application, admin tools, editors, and backend, then continued developing them with teammates.

02

Richer educational content

The editor supported mathematical notation alongside code, images, tables, and text, with work on equation authoring and rendering.

03

Connected discovery and AI

Students could search, search from a photo, ask questions, and receive AI-assisted responses in chat, search, and the forum.

04

Correctable AI answers

Admin review gave the team a way to flag problematic answers and exclude them pending correction.

05

Ownership as the team grew

Kept managing Big-B, the knowledge-base service, search, real-time features, and infrastructure as other developers joined.

COMPANY-REPORTED · THREE MONTHS AFTER LAUNCH
Verified users
15,420
Lessons (questions and concepts)
30,254
Courses
32
College ambassadors
55

Platform milestones from a company update during my involvement. They describe reach and content scale, are not independently audited, and are not growth attributable to my work alone.

Source: a #BraimyUpdate post by Darshan Awasthi.
PROPOSED NEXT STEPS · NOT COMPLETED WORK

Measure search and answers.

Build a repeatable evaluation set for mathematical search and AI answers, covering notation variants, short questions, photographed equations, and questions the available material can’t answer.

Editor regression cases

Add regression cases for equation insertion, editing, saving, and reopening, so editor changes can be checked against the content authors depend on.

Both would make future improvements easier to assess with evidence instead of isolated examples or user impressions.

Treat notation as content.
Retrieve before generating.
Give answers a correction path.

Sources and scope

Based on my engineering notes and clarifications, the Braimy backend developer documentation, and supplied historical product images. Public context: Braimy on LinkedIn and Braimy on Facebook. The historical Braimy website is no longer available.

Release and measurement scope. User, lesson, course, and ambassador figures come from a company update and are not independently audited. No retention, academic-performance, AI-accuracy, speed, or revenue figures are claimed. Search and authoring outcomes are described qualitatively, from my recollection.

Engineering boundaries. The NestJS backend worked alongside the Express API rather than replacing all of it. I don’t claim a specific custom editor node or rendering library. Normalized search covered supported notation, not symbolic equivalence, and semantic search and custom ranking are described as distinct work. The backend documentation describes the codebase; it is not a production audit.

Visual evidence. Product images are historical captures and marketing compositions with sample content; crops remove only browser framing and empty space. Phone framing illustrates the product and does not imply native mobile work, which was outside my scope. Figures printed inside the compositions are marketing copy, not claims made here. There are no editor screenshots. My involvement ran from September 2022 to August 2024.

Back to selected workLet’s talk

Product image

Enlarged Braimy product image