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.
2023
Mobile App
ASP.NET Core 7, C#, Entity Framework Core, SQL Server, REST API
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, andBadwords. - 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
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_deletedflags 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

Ticketing and FAQ site for Mejakita user support, built on ASP.NET and SQL Server.
- ASP.NET
- SQL Server
- Git

Team-built school profile website with news, teachers, and extracurricular pages.
- PHP Native
- MVC
- MySQL
- +2

Laravel practice blog using migrations, seeders, and Tailwind CSS.
- Laravel
- MySQL
- Git