nemesis

Nemesis

Nemesis is the public-facing investigative interface as the result of Operation Diponegoro, initiated by Abil Sudarman School of Artificial Intelligence. We ingest millions of rows of procurement data, surface anomalies, and make the findings legible to citizens, journalists, and policymakers.

[![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white)](https://www.docker.com/) [![Node.js](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge&logo=node.js&logoColor=white)](https://nodejs.org/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge)](LICENSE)

Nemesis Logo

Live dashboard: https://assai.id/nemesis

End the vampire ball.

Release Status

Asset Status ETA
Fine-tuned model 🟡 In progress ?
Scraping & Analyze source code 🟡 In progress ?

Stay tuned.

Downloads

Dataset

Download SIRUP raw jsonl dataset (analyzed by GPT-5.4)

Download SIRUP dataset SQL Ver (analyzed by GPT-5.4-mini)

Model

Stay tuned

1. Prepare the Database

You have two options for initializing the database:

Option A: Build from Raw Dataset (Recommended) If you downloaded the raw jsonl dataset, place the unzipped files inside a folder named dataset/ at the project root. Then dynamically compile the database:

npm run db:reset

Option B: Import the Pre-Analyzed V1 SQL Dump If you downloaded the dashboard.sql plain-text dump instead, you MUST compile it securely into the V2 SQLite binary format! Place dashboard.sql inside the data/ folder and run:

# 1. Delete any auto-generated corrupt binaries
rm -f data/dashboard.sqlite

# 2. Compile the 4.4GB text dump heavily into a binary SQLite database
sqlite3 data/dashboard.sqlite < data/dashboard.sql

# 3. Patch the legacy V1 data to strictly support V2.0.0 analytics
sqlite3 data/dashboard.sqlite < data/patch-v1-to-v2.sql

2. Run the Application

The frontend and backend have been unified into a seamless, high-performance Vite orchestrator. You no longer need to jump between directories or run Python servers!

For Production:

npm install
npm run build && npm run start

For Development:

npm run dev

The unified orchestrated server will boot automatically. Open your browser to the local URL explicitly printed in your terminal (usually http://127.0.0.1:$PORT).

Notes

Environment

Configuration is securely loaded from the .env file located in the project root.

Copy from example:

cp .env.example .env