AuthentiCheck is a sophisticated, browser-based tool designed to analyze the entire process of text creation. It goes far beyond a simple plagiarism check by capturing and visualizing detailed user behavior, including typing speed, rhythm, correction patterns, and the distinction between typed and pasted content.
This project is currently a fully client-side application that uses localStorage for data persistence, making it a powerful standalone demo.
➡️ View Live Demo (This link will work after setting up GitHub Pages)
- Typed vs. Pasted Analysis: Identify distinguishes between content that was typed by the user and content that was pasted from an external source.
- Sentence-by-Sentence Forensics:
- Typing Speed (WPM)
- Time taken to write
- Number of corrections (backspaces, deletes)
- Interactive Dashboard: A comprehensive dashboard that aggregates all session data a:
- Overall text composition (Typed vs. Pasted)
- Per-sentence WPM, duration, and correction analysis
- Zero Backend Required: Runs entirely in the browser, making it easy to deploy and test.
- Frontend: HTML5, CSS3, Vanilla JavaScript (ES6+)
- Data Visualization: Chart.js
- Data Storage: Browser
localStorage
AuthentiCheck's brilliance lies in its client-side architecture:
- Tracking (
track.html&main.js): As the user types in the editor,main.jslistens for every keystroke, paste, and deletion. It logs these events with timestamps and categorizes text segments. - Data Persistence: All this detailed session data, including sentence-level stats, is saved into the browser's
localStorageunder the keystudentTrackingDataAll. - Visualization (
dashboard.html&dashboard.js): The dashboard page reads the entire history fromlocalStorage, processes it, and uses Chart.js to render the analytics.
This self-contained model makes it perfect for demos, but would require a backend for a multi-user, production environment.
| File | Description |
|---|---|
index.html |
A marketing-style landing page describing the product's capabilities. |
track.html |
The core application page with the text editor where user activity is tracked. |
main.js |
The heart of the application. Contains all the logic for tracking typing, pasting, and sentence analysis. |
dashboard.js |
The script that loads data from localStorage, performs calculations,etc |
Since this project has no backend, you can run it easily with any local web server.
Method 1: Using VS Code Live Server (Easiest)
- Open the project folder in Visual Studio Code.
- Install the Live Server extension from the marketplace.
- Right-click on
index.htmlortrack.htmlin the file explorer and select "Open with Live Server".
Method 2: Using Python
- Make sure you have Python installed.
- Open a terminal in the project's root directory.
- Run the command:
python -m http.server - Open your browser and navigate to
http://localhost:8000.
- Navigate to
track.html. - Start typing in the text area. You can also paste content and make corrections.
- Observe the live statistics at the bottom of the editor.
- When you are finished, click the "Analysis" button.
- A modal will open showing the detailed dashboard with analytics of your writing session.
- You can go back, type more, and re-open the analysis to see the updated data.
This project has a fantastic foundation. Here's how it could be evolved into a full-fledged SaaS product:
- Backend Integration:
- Replace
localStoragewith a proper backend (e.g., Node.js/Express). - Use a database (like PostgreSQL or MongoDB) to store user and session data.
- Implement user authentication to separate data from different users.
- Replace
- Real-time Proctor Dashboard:
- Use WebSockets (e.g., Socket.IO) to stream data from
track.htmlto the dashboard in real-time, allowing a proctor to monitor multiple users simultaneously.
- Use WebSockets (e.g., Socket.IO) to stream data from
- Advanced Analysis:
- Integrate Natural Language Processing (NLP) libraries to analyze the quality of the writing (e.g., grammar, tone, complexity).
Contributions are welcome! Please feel free to submit a pull request.
- Fork the repository.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.