Anumati Project is a reference implementation of Digital Public Infrastructure (DPI) primitives enabling legitimate, governed, transparent, and purpose-bound data sharing.
It provides a Locker-based architecture, Connection Types, Terms, and X-Node Structure for Maintaing the Flow Control for Transfer of Ownership
Anumati-Project/
β
βββ Backend/
β βββ api/
β βββ media/
β βββ mysite/
β βββ static/
β βββ templates/
β βββ .gitignore
β βββ Connection Type.png
β βββ Data.data
β βββ db.sqlite3
β βββ manage.py
β βββ README.md
β βββ requirements_backend.txt
β
βββ Frontend/
βββ frontendUpdated/
βββ node_modules/
βββ package.json
βββ package-lock.json
Endpoint: /signup-user (form-data)
Example:
- username: iiitb
- description: Deemed University
- password: iiitb
Endpoint: /login-user (form-data)
Users can create multiple lockers.
Lockers organize user resources (documents, files, certificates).
API: /create-locker
Example form-data:
name: Education
description: Education records locker
Connections link two lockers (host β guest).
API: /create-new-connection
Example form-data:
connection_name: Connection No.1
connection_type_name: MTech 2024 Admissions
guest_username: Rohith
guest_lockername: Education
host_username: iiitb
host_lockername: Admissions
Define:
- Obligations
- Permissions
- Rules
- Validity
- Purpose of sharing
API: /create-connection-type-and-terms
Example JSON:
{
"connectionName": "Alumni Networks",
"connectionDescription": "Connection type for alumni communication.",
"lockerName": "Transcripts",
"obligations": [{
"labelName": "Graduation Batch",
"typeOfAction": "Add Value",
"typeOfSharing": "Share",
"labelDescription": "Mandatory to enter graduation batch",
"hostPermissions": ["Re-share", "Download"]
}],
"permissions": {
"canShareMoreData": true,
"canDownloadData": false
},
"validity": "2024-12-31"
}- Freeze lockers
- Manage global connections
- Control connection types and terms
cd Backendpip install -r requirements_backend.txtpython manage.py makemigrations
python manage.py migratepython manage.py runserverBackend runs at:
π http://127.0.0.1:8000/
cd Frontendnpm installnpm start
# OR
npm run devFrontend runs at:
π http://localhost:3000/
Defines:
- Purpose
- Terms
- Obligations
- Permissions
- Validity
Users create lockers to store their documents/resources.
Connect host β guest lockers using a connection type.
System enforces:
- Obligations
- Permissions
- Validity rules
- Sharing restrictions
- Standardized primitives for legitimate data sharing
- User-controlled data governance
- Transparent & auditable access
- DPI-aligned design (similar to UPI but for data)
- Scalable for cross-border consented sharing
- Python
- Django 5.x
- Django REST Framework
- SQLite
- React
- Node.js
- HTML/CSS/JS
This project is developed as part of IIIT-B DPI Research Initiative and follows academic open-source guidelines.