A self-contained document scanning and matching system. It allows users to upload .txt files, scan them against a database of .txt documents, and retrieve matches based on semantic similarity.
Live Demo: https://docmatrix.gftrilo.store/
- AI-powered document matching with Google Gemini (fallback to Levenshtein distance algorithms)
- User authentication and role-based access control
- Credit system with daily free scans and admin-managed additional credits
- Automated credit reset at 11:59 PM
- Smart analytics dashboard for admins
- User activity summary (No of scans, documents uploaded)
- Document management (upload, view, delete)
- Document privacy (Public or Private)
- Multi-user support
- Export scan results
- Backend: Node.js, Express, TypeScript
- Frontend: HTML, CSS, JavaScript
- Database: SQLite (Local) / SQLite Cloud
DocMatrix/
├── / # Node.js Express TypeScript backend
└── frontend/ # HTML, CSS, JS frontend
- Node.js (v18 or higher)
- SQLite
- SQLite Cloud
- Navigate to the project directory:
cd / - Install dependencies:
npm install - Set up the environment variables:
cp .env.example .env - Set
GEMINI_API_KEYin.envfile. You can get it from Google Gemini. - Set up the database connection type and connection string in
.env:- For local database:
DB_TYPE=LOCAL - For cloud database:
DB_TYPE=CLOUDand set up theSQLITE_CLOUD_URI(Get cloud databse url from here).
- For local database:
- Start the development server:
npm run dev - Open
http://localhost:4000in your browser to access the application
- Username:
admin - Password:
admin1234
- Username:
test - Password:
test1234
- Download test-data1.txt
- Download test-data2.txt
- Go to Upload page and upload both files
- Go to Scan page, select any file from dropdown and click
Scanbutton - You will get the scan results
- API Reference: Postman API Reference
- MIT License