All projects

Cari Rumus

Cari Rumus, developed during my internship at Mejakita, is a mobile application designed to assist users with various formulas and tips. While it primarily features an extensive collection of math formulas, it also includes formulas from physics, chemistry, and other subjects. The app provides tips and tricks for quick calculations and problem-solving across these disciplines. Users can log in using their Mejakita accounts to add new tips and tricks, as well as insert new formulas, making it a collaborative and comprehensive resource for students and learners.

Year

2023

Category

Mobile App

Tool

ASP.NET Core 7, C#, Entity Framework Core, SQL Server, REST API

Case Study

Problem

School students often struggle to recall STEM formulas and quick calculation techniques while studying or working on homework. Physical formula handbooks are cumbersome, difficult to search via keyword, and offer no interactive collaboration. Cari Rumus was conceived by Mejakita as an interactive multi-subject formula repository (Mathematics, Physics, Chemistry) augmented with user-generated content (UGC). The primary backend challenge was designing an API capable of storing mathematical notations (LaTeX syntax), supporting agile multi-keyword search queries, and automatically moderating user submissions to prevent inappropriate vocabulary across public feeds.

My role

During my software engineering internship at PT Mejakita Edunusa Mandiri, I served as the Backend Developer responsible for relational data modeling on Microsoft SQL Server and developing RESTful Web APIs using the modern .NET 7 ecosystem:

  • Relational Data Modeling (SQL Server & EF Core 7): Designed relational schemas spanning User, Mapel (subjects), Rumus (formulas), Tag, rumus_tag (many-to-many associations), Tips, Comment, Like, and Badwords.
  • RESTful API Development (ASP.NET Core 7): Built modular controllers governing formula lifecycles, subject classifications, multi-tag linking, problem-solving tips, and community interaction engines (discussion comments and upvotes).
  • Multi-Keyword Search Algorithm: Engineered an optimized LINQ-to-Entities search routine that splits search strings into distinct tokens, evaluating occurrences across titles, descriptions, and relational tags.
  • Automated Content Moderation Engine: Formulated server-side badword screening algorithms that scan incoming text descriptions against dynamic badword registries before formulas become discoverable.
  • Mejakita SSO & Claims-Based Authorization: Configured JWT Bearer authentication mapped to ClaimTypes.Email, securely synchronizing student identities from the central Mejakita ecosystem.

System architecture

Cari Rumus platform architecture diagram

The backend delivers type safety and high performance using the ASP.NET Core framework:

  • ASP.NET Core 7 Web API: Processes incoming requests, performs strict model validation, and returns normalized JSON responses.
  • Entity Framework Core 7 (ORM): Leverages LINQ for parameterized, SQL-injection-safe data access, employing eager loading (.Include()) to pull author and subject relationships efficiently.
  • Soft-Delete Invariant: Enforces historical relational integrity by toggling is_deleted flags rather than executing physical record destructions.
  • Microsoft SQL Server: Delivers robust relational storage with indexed foreign keys for multi-tag querying.

Key endpoints

Method Path Function & Authorization
GET /rumus Browse formula catalog (subject filter, pagination, multi-keyword search)
GET /rumus/{id} Retrieve comprehensive formula details including LaTeX syntax & author info
POST /rumus Contributors submit new formulas (Auth: User role, auto badword scan)
PUT /rumus/{id} Update authored formula (validates uniqueness of formula & title)
DELETE /rumus/{id} Flags formula as soft-deleted (is_deleted = true)
GET /tips & POST /tips Discover quick calculation tricks and study techniques
POST /like/rumus/{id} Upvote helpful formulas
POST /comment/rumus/{id} Post discussion comments and clarifications
GET /mapel Fetch active subject categories (Math, Physics, Chemistry)

Technical challenges

1. Flexible multi-keyword search with LINQ to Entities. When users search queries like “right triangle area formula”, exact substring matching fails if the word order differs. To resolve this, the query engine tokenizes input queries by whitespace, matches tokens across formula titles, descriptions, and linked tags, and coalesces matching entities into a HashSet<Rumus> to prevent duplicate records prior to pagination.

2. Automated badword moderation. Because students can upload formulas and study tips, the platform requires automated safeguards against offensive vocabulary. The submission pipeline checks description words against the Badwords registry. If matches occur, the record’s is_badword flag is set to true, automatically hiding the entry from public feeds pending administrator review.

3. Preventing redundant formula submissions and oversized titles. To maintain a high-quality educational repository, the controller verifies whether an identical formula expression (r.rumus == input.rumus) or title already exists in the active catalog before committing new rows. Additionally, title lengths are capped at 50 characters to prevent layout breakage on mobile devices.

Future improvements

  • Implement SQL Server Full-Text Search for high-throughput formula querying at scale.
  • Add a server-side LaTeX validation parser to check mathematical notation syntax before persistence.
  • Provide automated PDF formula cheatsheet export capabilities.

View More Projects

↑↓ navigate↵ selectesc close
fijri.my.id