This repository contains a complete verification system for T.C. (Turkish Republic) Identity Numbers.
It provides both:
- Offline algorithm-based validation (Luhn-style checksum checks)
- A backend structure for optional online verification (e.g., official service integrations)
The project includes a frontend built with HTML/JS (GitHub Pages friendly) and a backend built with Node.js (Express).
tc-identity-verification/
├── backend/ → Node.js API (Express)
└── frontend/ → HTML/JS interface (GitHub Pages)
- ✔ Offline T.C. Identity Number validation using checksum rules
- ✔ Clean and responsive web interface
- ✔
/verifybackend API for offline & online modes - ✔ Ready structure for integrating official verification services
- ✔ Full open-source and developer-friendly
- ✔ GitHub Pages support
POST /verify
{
"tckn": "12345678901",
"firstName": "John",
"lastName": "Doe",
"birthYear": "1990",
"mode": "offline"
}{
"success": true,
"mode": "offline",
"offlineValid": true,
"onlineValid": null,
"message": "Identity number is algorithmically valid."
}cd backend
npm install
npm startThe frontend is located in:
/frontend/index.htmlYou can deploy it using GitHub Pages:
- Go to repository → Settings
- Pages
- Set the source to
/frontendfolder - Done
The frontend communicates with the backend using the API_URL defined in script.js.
This project is licensed under the MIT License, allowing commercial and personal use.
Pull requests and feature requests are welcome. Please open an issue before making major changes.
If this project helps you, consider giving it a ⭐ on GitHub!