diff --git a/Chahak Agrawal/README.md b/Chahak Agrawal/README.md
new file mode 100644
index 00000000..a6970ae1
--- /dev/null
+++ b/Chahak Agrawal/README.md
@@ -0,0 +1,20 @@
+# About Project
+
+UBA-User Beaviour Analysis
+
+Bascic frontend project.
+It tracks activity on user page-like clicks,time spent,no of sessions,time sepnt per sections,etc.
+It stores all the activity in the admin side .
+
+# Files in the project
+
+index.html-sample user page-where actuvity is going to be tracked|||
+admin-login.html-a page to login as admin|||
+admin.html-the admin page that shows the dsahboard for all the activities done at index(i,e; user page) with different features for anylaysis of the all the data|||
+tracker.js-handling the working of the features
+
+# Tech Used
+HTMl
+JS
+
+
diff --git a/Chahak Agrawal/admin-login.html b/Chahak Agrawal/admin-login.html
new file mode 100644
index 00000000..e9cd6d0c
--- /dev/null
+++ b/Chahak Agrawal/admin-login.html
@@ -0,0 +1,20 @@
+
+
+
Admin Login
+
+ 🔐 Admin Login
+
+ Login
+
+
+
+
diff --git a/Chahak Agrawal/admin.html b/Chahak Agrawal/admin.html
new file mode 100644
index 00000000..fa835f6d
--- /dev/null
+++ b/Chahak Agrawal/admin.html
@@ -0,0 +1,476 @@
+
+
+
+
+
+ User Behavior Dashboard
+
+
+
+
+
+
+
+
+
+
📊 User Behavior Dashboard
+
+
+
+
+
+ Filter By
+
+ All Sessions
+ Today's Sessions
+ Idle Time > 20s
+ Low Typing Activity
+
+
+
+
+ Search by Username
+
+
+
+
+
+ Select Session
+
+ Choose a session
+
+
+
+
+
+
+
+
+
+
+
🕒 Time Spent per Section
+
+
+
+
+
📍 Combined User Behavior (Flagged Outliers)
+
+
+
🚩 Flagged Users
+
+
+
+ User ID
+ Behavior Score
+
+
+
+
+
+
+
+
👥 Aggregated User Behavior
+
+
+
+
+
⬇ Export to Excel
+
+
+
+
+
+
+
+
+
diff --git a/Chahak Agrawal/index.html b/Chahak Agrawal/index.html
new file mode 100644
index 00000000..d703d8c3
--- /dev/null
+++ b/Chahak Agrawal/index.html
@@ -0,0 +1,56 @@
+
+
+
+
+ Behavior Tracker Demo
+
+
+
+
+ Welcome to the Tracking Demo
+
+
+
+ Enter your name to start:
+
+ Start
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Chahak Agrawal/tracker.js b/Chahak Agrawal/tracker.js
new file mode 100644
index 00000000..99589c03
--- /dev/null
+++ b/Chahak Agrawal/tracker.js
@@ -0,0 +1,89 @@
+class UserBehaviorTracker {
+ constructor(username) {
+ this.username = username;
+ this.clicks = [];
+ this.typing = [];
+ this.scrolls = [];
+ this.sectionTimes = {};
+ this.idleTime = 0;
+ this.lastInteraction = Date.now();
+ this.typingStart = null;
+ this.activeSection = null;
+ this.sectionStartTime = null;
+
+ this._startIdleTimer();
+ this._setupListeners();
+ this._savePeriodically();
+ }
+
+ _startIdleTimer() {
+ setInterval(() => {
+ const now = Date.now();
+ if (now - this.lastInteraction > 5000) {
+ this.idleTime += 1;
+ }
+ }, 1000);
+ }
+
+ _setupListeners() {
+ document.addEventListener('click', e => {
+ this.clicks.push({ x: e.clientX, y: e.clientY, time: new Date().toISOString() });
+ this.lastInteraction = Date.now();
+ });
+
+ document.addEventListener('keydown', e => {
+ const now = Date.now();
+ this.typing.push({
+ key: e.key,
+ delay: this.typingStart ? now - this.typingStart : 0,
+ time: new Date().toISOString()
+ });
+ this.typingStart = now;
+ this.lastInteraction = now;
+ });
+
+ window.addEventListener('scroll', () => {
+ this.scrolls.push({ scrollY: window.scrollY, time: new Date().toISOString() });
+ this.lastInteraction = Date.now();
+ });
+
+ this._observeSections();
+ }
+
+ _observeSections() {
+ const sections = document.querySelectorAll('section');
+ const observer = new IntersectionObserver(entries => {
+ entries.forEach(entry => {
+ if (entry.isIntersecting) {
+ const id = entry.target.id;
+ if (this.activeSection && this.sectionStartTime) {
+ const duration = (Date.now() - this.sectionStartTime) / 1000;
+ this.sectionTimes[this.activeSection] = (this.sectionTimes[this.activeSection] || 0) + duration;
+ }
+ this.activeSection = id;
+ this.sectionStartTime = Date.now();
+ }
+ });
+ }, { threshold: 0.5 });
+
+ sections.forEach(sec => observer.observe(sec));
+ }
+
+ _savePeriodically() {
+ setInterval(() => {
+ const data = {
+ username: this.username,
+ clicks: this.clicks,
+ typing: this.typing,
+ scrolls: this.scrolls,
+ sectionTimes: this.sectionTimes,
+ idleTime: this.idleTime
+ };
+ const sessionId = `session-${this.username}-${new Date().toISOString()}`;
+
+ localStorage.setItem(sessionId, JSON.stringify(data));
+ }, 10000);
+ }
+}
+
+