From cfeffe9ac591689a768a0203e1b52c6bf7bb10be Mon Sep 17 00:00:00 2001
From: AYUSH GAUTAM <142661926+Ayushgautam16@users.noreply.github.com>
Date: Wed, 29 Oct 2025 20:52:31 +0530
Subject: [PATCH 1/6] Add files via upload
---
.gitignore | 94 +++++++++---
DEPLOYMENT.md | 154 +++++++++++++++++++
README.md | 236 ++++++++++++++++++-----------
index.html | 91 ++++++++++++
index1.html | 0
script.js | 405 ++++++++++++++++++++++++++++++++++++++++++++++++++
styles.css | 367 +++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 1236 insertions(+), 111 deletions(-)
create mode 100644 DEPLOYMENT.md
create mode 100644 index.html
create mode 100644 index1.html
create mode 100644 script.js
create mode 100644 styles.css
diff --git a/.gitignore b/.gitignore
index d663edd..c2365c8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,23 +1,71 @@
-# Java
-*.class
-*.log
-*.jar
-*.war
-*.ear
-# Build directories
-target/
-build/
-out/
-bin/
-# Editor temporary files
-*.swp
-*~
-# IDE files
-.idea/
-.vscode/
-*.iml
-*.iws
-*.ipr
-# Other
-.DS_Store
-Thumbs.db
\ No newline at end of file
+# Dependencies
+node_modules/
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# Runtime data
+pids
+*.pid
+*.seed
+*.pid.lock
+
+# Coverage directory used by tools like istanbul
+coverage/
+
+# nyc test coverage
+.nyc_output
+
+# Grunt intermediate storage
+.grunt
+
+# Bower dependency directory
+bower_components
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons
+build/Release
+
+# Dependency directories
+jspm_packages/
+
+# Optional npm cache directory
+.npm
+
+# Optional REPL history
+.node_repl_history
+
+# Output of 'npm pack'
+*.tgz
+
+# Yarn Integrity file
+.yarn-integrity
+
+# dotenv environment variables file
+.env
+
+# IDE files
+.vscode/
+.idea/
+*.swp
+*.swo
+*~
+
+# OS generated files
+.DS_Store
+.DS_Store?
+._*
+.Spotlight-V100
+.Trashes
+ehthumbs.db
+Thumbs.db
+
+# Logs
+logs
+*.log
+
+# Temporary files
+tmp/
+temp/
diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md
new file mode 100644
index 0000000..652697d
--- /dev/null
+++ b/DEPLOYMENT.md
@@ -0,0 +1,154 @@
+# ๐ GitHub Pages Deployment Guide
+
+This guide will walk you through deploying your Singly Linked List Game to GitHub Pages.
+
+## Prerequisites
+
+- A GitHub account
+- Git installed on your computer
+- Basic knowledge of Git commands
+
+## Step-by-Step Deployment
+
+### 1. Create a New Repository
+
+1. Go to [GitHub](https://github.com) and sign in
+2. Click the "+" icon in the top right corner
+3. Select "New repository"
+4. Name your repository (e.g., `singly-linked-list-game`)
+5. Make it **Public** (required for free GitHub Pages)
+6. Don't initialize with README (we already have one)
+7. Click "Create repository"
+
+### 2. Upload Your Files
+
+#### Option A: Using GitHub Web Interface
+1. In your new repository, click "uploading an existing file"
+2. Drag and drop all your project files:
+ - `index.html`
+ - `styles.css`
+ - `script.js`
+ - `README.md`
+ - `.gitignore`
+3. Add a commit message: "Initial commit: Singly Linked List Game"
+4. Click "Commit changes"
+
+#### Option B: Using Git Command Line
+```bash
+# Clone the repository
+git clone https://github.com/yourusername/singly-linked-list-game.git
+cd singly-linked-list-game
+
+# Copy your project files to this directory
+# (index.html, styles.css, script.js, README.md, .gitignore)
+
+# Add all files
+git add .
+
+# Commit
+git commit -m "Initial commit: Singly Linked List Game"
+
+# Push to GitHub
+git push origin main
+```
+
+### 3. Enable GitHub Pages
+
+1. Go to your repository on GitHub
+2. Click on **Settings** tab
+3. Scroll down to **Pages** section (or click "Pages" in the left sidebar)
+4. Under **Source**, select "Deploy from a branch"
+5. Under **Branch**, select `main` (or `master`)
+6. Click **Save**
+
+### 4. Wait for Deployment
+
+- GitHub will automatically build and deploy your site
+- This usually takes 1-5 minutes
+- You'll see a green checkmark when deployment is complete
+
+### 5. Access Your Game
+
+Your game will be available at:
+```
+https://yourusername.github.io/singly-linked-list-game
+```
+
+## ๐ฏ Custom Domain (Optional)
+
+If you want to use a custom domain:
+
+1. In the Pages settings, enter your domain in the "Custom domain" field
+2. Add a CNAME record in your domain provider's DNS settings
+3. Point it to `yourusername.github.io`
+
+## ๐ Updating Your Game
+
+To update your game after making changes:
+
+### Using GitHub Web Interface
+1. Navigate to the file you want to edit
+2. Click the pencil icon to edit
+3. Make your changes
+4. Commit with a descriptive message
+
+### Using Git Command Line
+```bash
+# Pull latest changes
+git pull origin main
+
+# Make your changes to files
+
+# Add and commit
+git add .
+git commit -m "Update: [describe your changes]"
+
+# Push to GitHub
+git push origin main
+```
+
+## ๐ Troubleshooting
+
+### Common Issues
+
+**Page not loading:**
+- Check if the repository is public
+- Verify all files are in the root directory
+- Wait a few minutes for deployment to complete
+
+**Game not working:**
+- Check browser console for JavaScript errors
+- Ensure all file paths are correct
+- Verify all files were uploaded
+
+**Styling issues:**
+- Check if CSS file was uploaded correctly
+- Verify file names match exactly (case-sensitive)
+
+### Getting Help
+
+- Check the [GitHub Pages documentation](https://pages.github.com/)
+- Look for error messages in the Actions tab
+- Verify your repository settings
+
+## ๐ฑ Testing
+
+After deployment, test your game on:
+- Desktop browsers (Chrome, Firefox, Safari, Edge)
+- Mobile devices
+- Different screen sizes
+- Various browsers
+
+## ๐ Success!
+
+Once deployed, you can:
+- Share your game with friends and students
+- Use it in educational settings
+- Showcase your programming skills
+- Contribute to open source education
+
+---
+
+**Happy Deploying! ๐**
+
+Your Singly Linked List Game will be live on the web and accessible to anyone with an internet connection!
diff --git a/README.md b/README.md
index 866e27f..23e85d5 100644
--- a/README.md
+++ b/README.md
@@ -1,88 +1,148 @@
-# Hacktoberfest Projects Repository
-
-Welcome to the **Hacktoberfest Projects** repository! This is a place where developers can upload and showcase their full stack projects. Whether you're an experienced developer or just starting, feel free to contribute your projects and help others learn.
-
-## Table of Contents
-
-- [About the Repository](#about-the-repository)
-- [How to Get Started](#how-to-get-started)
-- [How to Contribute](#how-to-contribute)
-- [Past Contributors](#contributors)
-- [License](#license)
-
-## About the Repository
-
-This repository collects full stack projects using popular technologies like:
-
-- **Frontend**: HTML, CSS, JavaScript, React, Angular, Vue.js, etc.
-- **Backend**: PHP, Go, Node.js, Express, Django, etc.
-- **Databases**: MongoDB, PostgreSQL, MySQL, etc.
-
-Each project is designed to be easy to set up and customize, offering a great resource for developers of all levels.
-
-## How to Get Started
-
-Follow these steps to start using this repository:
-
-1. **Clone the repository**
-
- ```bash
- git clone https://github.com/gitsofaryan/Hacktoberfest-Projects-2024.git
- cd Hacktoberfest-Projects-2024
-
-2. Explore projects: Look through the folders to find projects that interest you.
-
-3. Run a project: Each project has a README file with instructions on how to set it up and run.
-
-
-## How to Contribute
-We welcome your contributions! Hereโs how to add your project to the repository:
-
-### Steps to Contribute
-
-1. Fork the repository: Click the "Fork" button at the top of the page.
-
-2. Create a new branch for your project:
-
-```bash
-git checkout -b your-project-name
-```
-
-3. Add your project: Create a new folder for your project and include:
-
-- Your source code
-- A README file with instructions for setup and running the project
-- Any other important files (e.g., images, config files)
-
-4. Commit your changes:
-
-```bash
-git add .
-git commit -m "Added my project: Your Project Name"
-```
-
-5. Push to your branch:
-```bash
-git push origin your-project-name
-```
-
-6. Create a Pull Request: Go back to the original repository and click "New Pull Request."
-
-## Pull Request Guidelines
-
-- Make sure your README clearly explains how to set up and run your project.
-- Follow best coding practices.
-- Provide a brief description of your project in the Pull Request.
-
-[](https://github.com/gitsofaryan/Hacktoberfest-Projects-2025/graphs/contributors)
-
-
-
-
-See the full list of contributors and their contributions on the [`GitHub Contributors Graph`](https://github.com/gitsofaryan/Hacktoberfest-Projects-2025/graphs/contributors).
-
-### Thank you for contributing to the Hacktoberfest Projects repository! Weโre excited to see your projects and hope this helps you grow as a developer. Happy coding!
+# ๐ Singly Linked List Game
+
+An interactive, educational web game that teaches and tests knowledge of singly linked list data structure operations through engaging gameplay.
+
+## ๐ฎ Game Features
+
+### Core Operations
+- **Insert**: Add new nodes to the linked list
+- **Delete**: Remove nodes with specific values
+- **Search**: Find values within the linked list
+- **Reverse**: Reverse the entire linked list structure
+
+### Game Mechanics
+- **Scoring System**: Earn points for successful operations
+- **Level Progression**: Advance through levels as you score points
+- **Visual Feedback**: Real-time visualization of the linked list structure
+- **Interactive Tutorial**: Comprehensive guide for beginners
+- **Responsive Design**: Works on desktop and mobile devices
+
+### Visual Elements
+- Beautiful gradient backgrounds and modern UI
+- Animated node representations with arrows
+- Confetti effects for level-ups
+- Smooth transitions and hover effects
+
+## ๐ How to Play
+
+1. **Start the Game**: Click "New Game" to begin
+2. **Choose Operation**: Select from Insert, Delete, Search, or Reverse
+3. **Input Values**: Enter the required value (except for Reverse)
+4. **Submit**: Click submit or press Enter to execute the operation
+5. **Earn Points**: Successful operations award points and help you level up
+6. **Learn**: Use the Tutorial button to understand linked list concepts
+
+## ๐ ๏ธ Technical Implementation
+
+### Frontend Technologies
+- **HTML5**: Semantic structure and accessibility
+- **CSS3**: Modern styling with gradients, animations, and responsive design
+- **JavaScript ES6+**: Object-oriented programming with classes and modules
+
+### Data Structure
+- **SinglyLinkedList Class**: Implements core linked list operations
+- **GameState Class**: Manages game progression and scoring
+- **GameController Class**: Handles user interactions and game flow
+
+### Key Features
+- Real-time linked list visualization
+- Dynamic scoring and difficulty scaling
+- Input validation and error handling
+- Responsive design for all screen sizes
+- Smooth animations and visual feedback
+
+## ๐ GitHub Pages Deployment
+
+### Automatic Deployment
+This game is designed to work seamlessly with GitHub Pages. Simply:
+
+1. **Push to GitHub**: Upload all files to a GitHub repository
+2. **Enable Pages**: Go to repository Settings โ Pages
+3. **Select Source**: Choose "Deploy from a branch"
+4. **Select Branch**: Choose `main` or `master` branch
+5. **Save**: Your game will be available at `https://username.github.io/repository-name`
+
+### Manual Deployment
+If you prefer manual deployment:
+
+1. **Build the Project**: All files are already production-ready
+2. **Upload to Web Server**: Place files in your web server's public directory
+3. **Configure Server**: Ensure your server serves static files correctly
+
+### File Structure for Deployment
+```
+repository/
+โโโ index.html # Main game page
+โโโ styles.css # Game styling
+โโโ script.js # Game logic
+โโโ README.md # This file
+โโโ .gitignore # Git ignore file (optional)
+```
+
+## ๐ฑ Browser Compatibility
+
+- **Chrome**: 60+ (Full support)
+- **Firefox**: 55+ (Full support)
+- **Safari**: 12+ (Full support)
+- **Edge**: 79+ (Full support)
+- **Mobile Browsers**: iOS Safari 12+, Chrome Mobile 60+
+
+## ๐ฏ Learning Objectives
+
+This game helps players understand:
+
+- **Data Structure Concepts**: How linked lists organize data
+- **Algorithm Implementation**: Step-by-step operation execution
+- **Memory Management**: How nodes reference each other
+- **Problem Solving**: Strategic thinking for data manipulation
+- **Visual Learning**: Seeing abstract concepts in action
+
+## ๐ง Customization
+
+### Adding New Operations
+To add new linked list operations:
+
+1. Add the operation button to `index.html`
+2. Implement the method in the `SinglyLinkedList` class
+3. Add case handling in the `executeOperation` method
+4. Update scoring and feedback logic
+
+### Modifying Visual Styles
+The game uses CSS custom properties and modern CSS features:
+- Modify color schemes in `styles.css`
+- Adjust animations and transitions
+- Customize responsive breakpoints
+- Update typography and spacing
+
+## ๐ Performance Features
+
+- **Efficient Rendering**: Minimal DOM manipulation
+- **Memory Management**: Proper cleanup of event listeners
+- **Smooth Animations**: CSS-based animations for better performance
+- **Responsive Updates**: Only update necessary UI elements
+
+## ๐ค Contributing
+
+Feel free to contribute to this project by:
+
+1. **Forking** the repository
+2. **Creating** a feature branch
+3. **Making** your improvements
+4. **Submitting** a pull request
+
+## ๐ License
+
+This project is open source and available under the [MIT License](LICENSE).
+
+## ๐ Acknowledgments
+
+- Built with modern web technologies
+- Designed for educational purposes
+- Inspired by data structure learning games
+- Created with accessibility and user experience in mind
+
+---
+
+**Happy Learning! ๐**
+
+Start playing the game and master the concepts of singly linked lists through interactive gameplay!
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..e28f5e5
--- /dev/null
+++ b/index.html
@@ -0,0 +1,91 @@
+
+
+
+
+
+ Singly Linked List Game
+
+
+
+
+
+
+
๐ Singly Linked List Game
+
Learn and practice singly linked list operations through interactive gameplay!
+
+
+
+
+
+
+ Score: 0
+ Level: 1
+
+
+
+
+
+
+
+
+
+
+
Operations
+
+
+
+
+
+
+
+
+
+
Input
+
+
+
+
+
+
+
+
Feedback
+
+
+
+
+
+
+
+ ×
+
How to Play
+
+
๐ฏ Objective
+
Complete linked list operations to earn points and advance through levels!
+
+
๐ง Operations
+
+
Insert: Add a new node with the specified value
+
Delete: Remove a node with the specified value
+
Search: Find if a value exists in the list
+
Reverse: Reverse the entire linked list
+
+
+
๐ฎ Gameplay
+
+
Choose an operation from the buttons
+
Enter the required value (if needed)
+
Submit your answer
+
Earn points for correct operations
+
Level up as you progress!
+
+
+
๐ What is a Singly Linked List?
+
A singly linked list is a data structure where each element (node) contains data and a reference to the next node. The last node points to null, indicating the end of the list.
+
+
+
+
+
+
+
+
diff --git a/index1.html b/index1.html
new file mode 100644
index 0000000..e69de29
diff --git a/script.js b/script.js
new file mode 100644
index 0000000..8708af7
--- /dev/null
+++ b/script.js
@@ -0,0 +1,405 @@
+// Singly Linked List Game
+class SinglyLinkedList {
+ constructor() {
+ this.head = null;
+ this.size = 0;
+ }
+
+ // Insert a new node at the end
+ insert(value) {
+ const newNode = { data: value, next: null };
+
+ if (!this.head) {
+ this.head = newNode;
+ } else {
+ let current = this.head;
+ while (current.next) {
+ current = current.next;
+ }
+ current.next = newNode;
+ }
+ this.size++;
+ return true;
+ }
+
+ // Delete a node with given value
+ delete(value) {
+ if (!this.head) return false;
+
+ if (this.head.data === value) {
+ this.head = this.head.next;
+ this.size--;
+ return true;
+ }
+
+ let current = this.head;
+ while (current.next && current.next.data !== value) {
+ current = current.next;
+ }
+
+ if (current.next) {
+ current.next = current.next.next;
+ this.size--;
+ return true;
+ }
+ return false;
+ }
+
+ // Search for a value
+ search(value) {
+ let current = this.head;
+ while (current) {
+ if (current.data === value) {
+ return true;
+ }
+ current = current.next;
+ }
+ return false;
+ }
+
+ // Reverse the linked list
+ reverse() {
+ let prev = null;
+ let current = this.head;
+ let next = null;
+
+ while (current) {
+ next = current.next;
+ current.next = prev;
+ prev = current;
+ current = next;
+ }
+
+ this.head = prev;
+ return true;
+ }
+
+ // Get array representation
+ toArray() {
+ const result = [];
+ let current = this.head;
+ while (current) {
+ result.push(current.data);
+ current = current.next;
+ }
+ return result;
+ }
+
+ // Clear the list
+ clear() {
+ this.head = null;
+ this.size = 0;
+ }
+}
+
+// Game State
+class GameState {
+ constructor() {
+ this.linkedList = new SinglyLinkedList();
+ this.score = 0;
+ this.level = 1;
+ this.currentOperation = null;
+ this.gameHistory = [];
+ this.difficulty = 1;
+ }
+
+ startNewGame() {
+ this.linkedList.clear();
+ this.score = 0;
+ this.level = 1;
+ this.currentOperation = null;
+ this.gameHistory = [];
+ this.difficulty = 1;
+
+ // Add some initial nodes for the game
+ this.linkedList.insert(5);
+ this.linkedList.insert(10);
+ this.linkedList.insert(15);
+
+ this.updateDisplay();
+ this.showFeedback("New game started! The linked list has been initialized with some values.", "info");
+ }
+
+ selectOperation(operation) {
+ this.currentOperation = operation;
+ this.updateOperationButtons();
+ this.showOperationInstructions(operation);
+ }
+
+ executeOperation(value) {
+ if (!this.currentOperation) {
+ this.showFeedback("Please select an operation first!", "error");
+ return;
+ }
+
+ let success = false;
+ let message = "";
+
+ switch (this.currentOperation) {
+ case 'insert':
+ success = this.linkedList.insert(value);
+ message = success ?
+ `Successfully inserted ${value} into the linked list!` :
+ `Failed to insert ${value}`;
+ break;
+
+ case 'delete':
+ success = this.linkedList.delete(value);
+ message = success ?
+ `Successfully deleted ${value} from the linked list!` :
+ `Value ${value} not found in the linked list`;
+ break;
+
+ case 'search':
+ const found = this.linkedList.search(value);
+ success = true;
+ message = found ?
+ `Value ${value} found in the linked list!` :
+ `Value ${value} not found in the linked list`;
+ break;
+
+ case 'reverse':
+ success = this.linkedList.reverse();
+ message = success ?
+ "Successfully reversed the linked list!" :
+ "Failed to reverse the linked list";
+ break;
+ }
+
+ if (success) {
+ this.score += this.calculatePoints();
+ this.checkLevelUp();
+ this.gameHistory.push({
+ operation: this.currentOperation,
+ value: value,
+ success: success,
+ timestamp: new Date()
+ });
+ }
+
+ this.showFeedback(message, success ? "success" : "error");
+ this.updateDisplay();
+ this.currentOperation = null;
+ this.updateOperationButtons();
+ }
+
+ calculatePoints() {
+ const basePoints = 10;
+ const difficultyMultiplier = this.difficulty;
+ const sizeBonus = Math.floor(this.linkedList.size / 5) * 5;
+ return basePoints * difficultyMultiplier + sizeBonus;
+ }
+
+ checkLevelUp() {
+ const newLevel = Math.floor(this.score / 100) + 1;
+ if (newLevel > this.level) {
+ this.level = newLevel;
+ this.difficulty = Math.min(this.level, 5);
+ this.showFeedback(`๐ Level Up! You're now at level ${this.level}!`, "success");
+ }
+ }
+
+ showOperationInstructions(operation) {
+ const instructions = {
+ insert: "Enter a value to insert into the linked list",
+ delete: "Enter a value to delete from the linked list",
+ search: "Enter a value to search for in the linked list",
+ reverse: "Click submit to reverse the entire linked list"
+ };
+
+ this.showFeedback(instructions[operation], "info");
+
+ // Show/hide input panel based on operation
+ const inputPanel = document.getElementById('inputPanel');
+ if (operation === 'reverse') {
+ inputPanel.style.display = 'none';
+ } else {
+ inputPanel.style.display = 'block';
+ }
+ }
+
+ updateOperationButtons() {
+ const buttons = document.querySelectorAll('.op-btn');
+ buttons.forEach(btn => {
+ btn.classList.remove('active');
+ if (btn.dataset.operation === this.currentOperation) {
+ btn.classList.add('active');
+ }
+ });
+ }
+
+ showFeedback(message, type) {
+ const feedbackText = document.getElementById('feedbackText');
+ feedbackText.textContent = message;
+ feedbackText.className = `feedback-text ${type}`;
+
+ // Auto-hide after 3 seconds
+ setTimeout(() => {
+ feedbackText.textContent = '';
+ feedbackText.className = 'feedback-text';
+ }, 3000);
+ }
+
+ updateDisplay() {
+ this.updateScore();
+ this.updateLevel();
+ this.updateLinkedListVisual();
+ }
+
+ updateScore() {
+ document.getElementById('score').textContent = this.score;
+ }
+
+ updateLevel() {
+ document.getElementById('level').textContent = this.level;
+ }
+
+ updateLinkedListVisual() {
+ const visual = document.getElementById('linkedListVisual');
+ const nodes = this.linkedList.toArray();
+
+ if (nodes.length === 0) {
+ visual.innerHTML = '
+ `;
+
+ this.todoList.appendChild(li);
+ });
+ }
+
+ formatDate(dateString) {
+ const date = new Date(dateString);
+ const today = new Date();
+ const tomorrow = new Date(today);
+ tomorrow.setDate(tomorrow.getDate() + 1);
+
+ if (date.toDateString() === today.toDateString()) {
+ return 'Today';
+ } else if (date.toDateString() === tomorrow.toDateString()) {
+ return 'Tomorrow';
+ } else {
+ return date.toLocaleDateString('en-US', {
+ month: 'short',
+ day: 'numeric',
+ year: date.getFullYear() !== today.getFullYear() ? 'numeric' : undefined
+ });
+ }
+ }
+
+ formatRelativeTime(dateString) {
+ const date = new Date(dateString);
+ const now = new Date();
+ const diffInMinutes = Math.floor((now - date) / (1000 * 60));
+
+ if (diffInMinutes < 1) return 'Just now';
+ if (diffInMinutes < 60) return `${diffInMinutes}m ago`;
+ if (diffInMinutes < 1440) return `${Math.floor(diffInMinutes / 60)}h ago`;
+ return `${Math.floor(diffInMinutes / 1440)}d ago`;
+ }
+
+ escapeHtml(text) {
+ const div = document.createElement('div');
+ div.textContent = text;
+ return div.innerHTML;
+ }
+}
+
+// Initialize the app when the page loads
+document.addEventListener('DOMContentLoaded', () => {
+ window.todoApp = new TodoApp();
+});
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..a1ea8b5
--- /dev/null
+++ b/style.css
@@ -0,0 +1,429 @@
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+:root {
+ --primary-color: #6366f1;
+ --primary-dark: #4f46e5;
+ --secondary-color: #8b5cf6;
+ --accent-color: #06b6d4;
+ --success-color: #10b981;
+ --warning-color: #f59e0b;
+ --danger-color: #ef4444;
+ --text-primary: #1f2937;
+ --text-secondary: #6b7280;
+ --bg-primary: #ffffff;
+ --bg-secondary: #f9fafb;
+ --border-color: #e5e7eb;
+ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
+ --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
+ --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
+ --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
+}
+
+body {
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+ min-height: 100vh;
+ color: var(--text-primary);
+ line-height: 1.6;
+}
+
+.container {
+ max-width: 900px;
+ margin: 2rem auto;
+ padding: 0 1rem;
+}
+
+.app-header {
+ text-align: center;
+ margin-bottom: 2rem;
+}
+
+.app-header h1 {
+ font-size: 2.5rem;
+ font-weight: 800;
+ background: linear-gradient(135deg, #4f46e5, #7c3aed);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
+ margin-bottom: 0.5rem;
+ filter: brightness(0.8) contrast(1.2);
+}
+
+.app-header h1 i {
+ margin-right: 0.5rem;
+ color: var(--primary-color);
+}
+
+.subtitle {
+ color: var(--text-secondary);
+ font-size: 1.1rem;
+ font-weight: 500;
+}
+
+.search-section {
+ background: rgba(255, 255, 255, 0.1);
+ backdrop-filter: blur(10px);
+ border-radius: 16px;
+ padding: 1.5rem;
+ margin-bottom: 2rem;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+}
+
+.search-box {
+ position: relative;
+ margin-bottom: 1rem;
+}
+
+.search-box i {
+ position: absolute;
+ left: 1rem;
+ top: 50%;
+ transform: translateY(-50%);
+ color: var(--text-secondary);
+}
+
+#searchInput {
+ width: 100%;
+ padding: 1rem 1rem 1rem 3rem;
+ border: none;
+ border-radius: 12px;
+ background: rgba(255, 255, 255, 0.9);
+ font-size: 1rem;
+ transition: all 0.3s ease;
+}
+
+#searchInput:focus {
+ outline: none;
+ background: white;
+ box-shadow: var(--shadow-lg);
+}
+
+.filter-buttons {
+ display: flex;
+ gap: 0.5rem;
+ flex-wrap: wrap;
+}
+
+.filter-btn {
+ padding: 0.5rem 1rem;
+ border: none;
+ border-radius: 8px;
+ background: rgba(255, 255, 255, 0.2);
+ color: white;
+ cursor: pointer;
+ font-weight: 500;
+ transition: all 0.3s ease;
+}
+
+.filter-btn:hover {
+ background: rgba(255, 255, 255, 0.3);
+}
+
+.filter-btn.active {
+ background: var(--primary-color);
+ color: white;
+}
+
+.input-section {
+ background: rgba(255, 255, 255, 0.1);
+ backdrop-filter: blur(10px);
+ border-radius: 16px;
+ padding: 1.5rem;
+ margin-bottom: 2rem;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+}
+
+.input-row {
+ display: grid;
+ grid-template-columns: 2fr 1fr 1fr 1fr auto;
+ gap: 1rem;
+ align-items: center;
+}
+
+#todoInput {
+ padding: 1rem;
+ border: none;
+ border-radius: 12px;
+ background: rgba(255, 255, 255, 0.9);
+ font-size: 1rem;
+ transition: all 0.3s ease;
+}
+
+#todoInput:focus {
+ outline: none;
+ background: white;
+ box-shadow: var(--shadow-lg);
+}
+
+#prioritySelect, #categorySelect, #dueDateInput {
+ padding: 1rem;
+ border: none;
+ border-radius: 12px;
+ background: rgba(255, 255, 255, 0.9);
+ font-size: 1rem;
+ cursor: pointer;
+ transition: all 0.3s ease;
+}
+
+#prioritySelect:focus, #categorySelect:focus, #dueDateInput:focus {
+ outline: none;
+ background: white;
+ box-shadow: var(--shadow-lg);
+}
+
+#addBtn {
+ padding: 1rem 1.5rem;
+ background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
+ color: white;
+ border: none;
+ border-radius: 12px;
+ cursor: pointer;
+ font-size: 1rem;
+ font-weight: 600;
+ transition: all 0.3s ease;
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+}
+
+#addBtn:hover {
+ transform: translateY(-2px);
+ box-shadow: var(--shadow-xl);
+}
+
+.stats-section {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 1rem;
+ margin-bottom: 2rem;
+}
+
+.stat-item {
+ background: rgba(255, 255, 255, 0.1);
+ backdrop-filter: blur(10px);
+ border-radius: 12px;
+ padding: 1.5rem;
+ text-align: center;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ transition: transform 0.3s ease;
+}
+
+.stat-item:hover {
+ transform: translateY(-4px);
+}
+
+.stat-number {
+ display: block;
+ font-size: 2rem;
+ font-weight: 800;
+ color: white;
+ margin-bottom: 0.5rem;
+}
+
+.stat-label {
+ color: rgba(255, 255, 255, 0.8);
+ font-weight: 500;
+ text-transform: uppercase;
+ letter-spacing: 0.5px;
+ font-size: 0.875rem;
+}
+
+#todoList {
+ list-style: none;
+}
+
+.todo-item {
+ background: rgba(255, 255, 255, 0.95);
+ backdrop-filter: blur(10px);
+ border-radius: 16px;
+ padding: 1.5rem;
+ margin-bottom: 1rem;
+ border: 1px solid rgba(255, 255, 255, 0.2);
+ transition: all 0.3s ease;
+ position: relative;
+ overflow: hidden;
+}
+
+.todo-item::before {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ width: 4px;
+ background: var(--primary-color);
+ transition: all 0.3s ease;
+}
+
+.todo-item:hover {
+ transform: translateY(-4px);
+ box-shadow: var(--shadow-xl);
+}
+
+.todo-item.completed::before {
+ background: var(--success-color);
+}
+
+.todo-item.completed {
+ opacity: 0.8;
+}
+
+.todo-item.completed .todo-text {
+ text-decoration: line-through;
+ color: var(--text-secondary);
+}
+
+.todo-header {
+ display: flex;
+ align-items: center;
+ gap: 1rem;
+ margin-bottom: 1rem;
+}
+
+.todo-text {
+ flex: 1;
+ font-size: 1.1rem;
+ font-weight: 500;
+ color: var(--text-primary);
+}
+
+.todo-meta {
+ display: flex;
+ gap: 1rem;
+ margin-bottom: 1rem;
+ flex-wrap: wrap;
+}
+
+.meta-item {
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+ font-size: 0.875rem;
+ color: var(--text-secondary);
+}
+
+.priority-badge {
+ padding: 0.25rem 0.75rem;
+ border-radius: 20px;
+ font-size: 0.75rem;
+ font-weight: 600;
+ text-transform: uppercase;
+ letter-spacing: 0.5px;
+}
+
+.priority-low {
+ background: #dbeafe;
+ color: #1e40af;
+}
+
+.priority-medium {
+ background: #fef3c7;
+ color: #92400e;
+}
+
+.priority-high {
+ background: #fee2e2;
+ color: #991b1b;
+}
+
+.category-badge {
+ padding: 0.25rem 0.75rem;
+ border-radius: 20px;
+ font-size: 0.75rem;
+ font-weight: 600;
+ background: var(--accent-color);
+ color: white;
+}
+
+.todo-actions {
+ display: flex;
+ gap: 0.75rem;
+ justify-content: flex-end;
+}
+
+.complete-btn, .edit-btn, .delete-btn {
+ padding: 0.75rem 1rem;
+ border: none;
+ border-radius: 8px;
+ cursor: pointer;
+ font-size: 0.875rem;
+ font-weight: 500;
+ transition: all 0.3s ease;
+ display: flex;
+ align-items: center;
+ gap: 0.5rem;
+}
+
+.complete-btn {
+ background: var(--success-color);
+ color: white;
+}
+
+.complete-btn:hover {
+ background: #059669;
+ transform: translateY(-2px);
+}
+
+.edit-btn {
+ background: var(--warning-color);
+ color: white;
+}
+
+.edit-btn:hover {
+ background: #d97706;
+ transform: translateY(-2px);
+}
+
+.delete-btn {
+ background: var(--danger-color);
+ color: white;
+}
+
+.delete-btn:hover {
+ background: #dc2626;
+ transform: translateY(-2px);
+}
+
+.empty-state {
+ text-align: center;
+ padding: 3rem;
+ color: rgba(255, 255, 255, 0.8);
+}
+
+.empty-state i {
+ font-size: 3rem;
+ margin-bottom: 1rem;
+ opacity: 0.5;
+}
+
+@media (max-width: 768px) {
+ .container {
+ margin: 1rem;
+ }
+
+ .input-row {
+ grid-template-columns: 1fr;
+ gap: 1rem;
+ }
+
+ .stats-section {
+ grid-template-columns: 1fr;
+ }
+
+ .todo-meta {
+ flex-direction: column;
+ gap: 0.5rem;
+ }
+
+ .todo-actions {
+ flex-direction: column;
+ }
+
+ .filter-buttons {
+ justify-content: center;
+ }
+}
From 6021f901235c2993b58651391c2dcb3dc226d0ad Mon Sep 17 00:00:00 2001
From: AYUSH GAUTAM <142661926+Ayushgautam16@users.noreply.github.com>
Date: Wed, 29 Oct 2025 21:15:17 +0530
Subject: [PATCH 3/6] Add files via upload
From ef84230c3e30b47f5a186197edb97e78a5c3147f Mon Sep 17 00:00:00 2001
From: AYUSH GAUTAM <142661926+Ayushgautam16@users.noreply.github.com>
Date: Wed, 29 Oct 2025 21:16:26 +0530
Subject: [PATCH 4/6] Add files via upload
---
README.md | 211 ++++++++++++++++++++----------------------------------
1 file changed, 79 insertions(+), 132 deletions(-)
diff --git a/README.md b/README.md
index 23e85d5..bdca072 100644
--- a/README.md
+++ b/README.md
@@ -1,148 +1,95 @@
-# ๐ Singly Linked List Game
-
-An interactive, educational web game that teaches and tests knowledge of singly linked list data structure operations through engaging gameplay.
-
-## ๐ฎ Game Features
-
-### Core Operations
-- **Insert**: Add new nodes to the linked list
-- **Delete**: Remove nodes with specific values
-- **Search**: Find values within the linked list
-- **Reverse**: Reverse the entire linked list structure
-
-### Game Mechanics
-- **Scoring System**: Earn points for successful operations
-- **Level Progression**: Advance through levels as you score points
-- **Visual Feedback**: Real-time visualization of the linked list structure
-- **Interactive Tutorial**: Comprehensive guide for beginners
-- **Responsive Design**: Works on desktop and mobile devices
-
-### Visual Elements
-- Beautiful gradient backgrounds and modern UI
-- Animated node representations with arrows
-- Confetti effects for level-ups
-- Smooth transitions and hover effects
-
-## ๐ How to Play
-
-1. **Start the Game**: Click "New Game" to begin
-2. **Choose Operation**: Select from Insert, Delete, Search, or Reverse
-3. **Input Values**: Enter the required value (except for Reverse)
-4. **Submit**: Click submit or press Enter to execute the operation
-5. **Earn Points**: Successful operations award points and help you level up
-6. **Learn**: Use the Tutorial button to understand linked list concepts
-
-## ๐ ๏ธ Technical Implementation
-
-### Frontend Technologies
-- **HTML5**: Semantic structure and accessibility
-- **CSS3**: Modern styling with gradients, animations, and responsive design
-- **JavaScript ES6+**: Object-oriented programming with classes and modules
-
-### Data Structure
-- **SinglyLinkedList Class**: Implements core linked list operations
-- **GameState Class**: Manages game progression and scoring
-- **GameController Class**: Handles user interactions and game flow
-
-### Key Features
-- Real-time linked list visualization
-- Dynamic scoring and difficulty scaling
-- Input validation and error handling
-- Responsive design for all screen sizes
-- Smooth animations and visual feedback
-
-## ๐ GitHub Pages Deployment
-
-### Automatic Deployment
-This game is designed to work seamlessly with GitHub Pages. Simply:
-
-1. **Push to GitHub**: Upload all files to a GitHub repository
-2. **Enable Pages**: Go to repository Settings โ Pages
-3. **Select Source**: Choose "Deploy from a branch"
-4. **Select Branch**: Choose `main` or `master` branch
-5. **Save**: Your game will be available at `https://username.github.io/repository-name`
-
-### Manual Deployment
-If you prefer manual deployment:
-
-1. **Build the Project**: All files are already production-ready
-2. **Upload to Web Server**: Place files in your web server's public directory
-3. **Configure Server**: Ensure your server serves static files correctly
-
-### File Structure for Deployment
+# ๐ Smart Todo App
+
+A beautiful, feature-rich todo application built with vanilla HTML, CSS, and JavaScript. Features a stunning Notion-like design with advanced functionality.
+
+## โจ Features
+
+- **๐จ Stunning Design**: Glassmorphism effects with backdrop blur and modern gradients
+- **๐ Smart Search**: Real-time search and filtering capabilities
+- **๐ท๏ธ Categories**: Organize todos by Personal, Work, Shopping, Health, and Learning
+- **โก Priority Levels**: Low, Medium, and High priority with color-coded badges
+- **๐ Due Dates**: Set deadlines with overdue warnings
+- **๐ Statistics Dashboard**: Live counts and progress tracking
+- **๐พ Local Storage**: Data persists between browser sessions
+- **๐ฑ Responsive Design**: Works perfectly on all devices
+- **โ๏ธ Edit & Delete**: Full CRUD operations for todos
+
+## ๐ ๏ธ Technologies Used
+
+- **HTML5**: Semantic markup and modern structure
+- **CSS3**: Advanced styling with CSS variables, flexbox, and grid
+- **JavaScript ES6+**: Modern JavaScript with classes and modules
+- **Font Awesome**: Beautiful icons for enhanced UX
+- **Local Storage**: Client-side data persistence
+
+## ๐ Getting Started
+
+### Option 1: Direct Usage
+1. Clone or download this repository
+2. Open `index.html` in your web browser
+3. Start organizing your tasks!
+
+### Option 2: GitHub Pages (Recommended)
+1. Fork this repository to your GitHub account
+2. Go to Settings โ Pages
+3. Select source as "Deploy from a branch"
+4. Choose `main` branch and `/ (root)` folder
+5. Click Save - your app will be live in minutes!
+
+## ๐ฑ Features in Detail
+
+### Search & Filter
+- **Real-time Search**: Type to instantly find todos
+- **Status Filters**: View All, Pending, or Completed todos
+- **Smart Results**: Combines search and filter for precise results
+
+### Todo Management
+- **Add Todos**: Quick input with priority, category, and due date
+- **Edit Todos**: Click edit to modify existing tasks
+- **Complete/Undo**: Toggle completion status
+- **Delete**: Remove todos with confirmation
+
+### Visual Design
+- **Glassmorphism**: Modern translucent card design
+- **Color Coding**: Priority-based color schemes
+- **Responsive Layout**: Adapts to any screen size
+- **Smooth Animations**: Hover effects and transitions
+
+## ๐จ Customization
+
+The app uses CSS custom properties (variables) for easy theming:
+
+```css
+:root {
+ --primary-color: #6366f1;
+ --secondary-color: #8b5cf6;
+ --accent-color: #06b6d4;
+ /* ... more variables */
+}
```
-repository/
-โโโ index.html # Main game page
-โโโ styles.css # Game styling
-โโโ script.js # Game logic
-โโโ README.md # This file
-โโโ .gitignore # Git ignore file (optional)
-```
-
-## ๐ฑ Browser Compatibility
-
-- **Chrome**: 60+ (Full support)
-- **Firefox**: 55+ (Full support)
-- **Safari**: 12+ (Full support)
-- **Edge**: 79+ (Full support)
-- **Mobile Browsers**: iOS Safari 12+, Chrome Mobile 60+
-
-## ๐ฏ Learning Objectives
-
-This game helps players understand:
-
-- **Data Structure Concepts**: How linked lists organize data
-- **Algorithm Implementation**: Step-by-step operation execution
-- **Memory Management**: How nodes reference each other
-- **Problem Solving**: Strategic thinking for data manipulation
-- **Visual Learning**: Seeing abstract concepts in action
-
-## ๐ง Customization
-### Adding New Operations
-To add new linked list operations:
+## ๐ Project Structure
-1. Add the operation button to `index.html`
-2. Implement the method in the `SinglyLinkedList` class
-3. Add case handling in the `executeOperation` method
-4. Update scoring and feedback logic
-
-### Modifying Visual Styles
-The game uses CSS custom properties and modern CSS features:
-- Modify color schemes in `styles.css`
-- Adjust animations and transitions
-- Customize responsive breakpoints
-- Update typography and spacing
+```
+โโโ index.html # Main HTML file
+โโโ style.css # Styles and animations
+โโโ script.js # JavaScript functionality
+โโโ README.md # This file
+```
-## ๐ Performance Features
+## ๐ Live Demo
-- **Efficient Rendering**: Minimal DOM manipulation
-- **Memory Management**: Proper cleanup of event listeners
-- **Smooth Animations**: CSS-based animations for better performance
-- **Responsive Updates**: Only update necessary UI elements
+Visit the live demo: [Your GitHub Pages URL will appear here]
## ๐ค Contributing
-Feel free to contribute to this project by:
-
-1. **Forking** the repository
-2. **Creating** a feature branch
-3. **Making** your improvements
-4. **Submitting** a pull request
+Feel free to fork this project and submit pull requests for any improvements!
## ๐ License
This project is open source and available under the [MIT License](LICENSE).
-## ๐ Acknowledgments
-
-- Built with modern web technologies
-- Designed for educational purposes
-- Inspired by data structure learning games
-- Created with accessibility and user experience in mind
-
---
-**Happy Learning! ๐**
+**Built with โค๏ธ using vanilla web technologies**
-Start playing the game and master the concepts of singly linked lists through interactive gameplay!
From 2b34087c22a7175befb0725eb50673c5b0a13629 Mon Sep 17 00:00:00 2001
From: AYUSH GAUTAM <142661926+Ayushgautam16@users.noreply.github.com>
Date: Wed, 29 Oct 2025 21:17:58 +0530
Subject: [PATCH 5/6] Add files via upload
---
LICENSE | 22 ++++++++
index.html | 161 +++++++++++++++++++++++------------------------------
2 files changed, 92 insertions(+), 91 deletions(-)
create mode 100644 LICENSE
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..0918486
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,22 @@
+MIT License
+
+Copyright (c) 2024 Smart Todo App
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git a/index.html b/index.html
index e28f5e5..223823d 100644
--- a/index.html
+++ b/index.html
@@ -1,91 +1,70 @@
-
-
-
-
-
- Singly Linked List Game
-
-
-
-
-
-
-
๐ Singly Linked List Game
-
Learn and practice singly linked list operations through interactive gameplay!
-
-
-
-
-
-
- Score: 0
- Level: 1
-
-
-
-
-
-
-
-
-
-
-
Operations
-
-
-
-
-
-
-
-
-
-
Input
-
-
-
-
-
-
-
-
Feedback
-
-
-
-
-
-
-
- ×
-
How to Play
-
-
๐ฏ Objective
-
Complete linked list operations to earn points and advance through levels!
-
-
๐ง Operations
-
-
Insert: Add a new node with the specified value
-
Delete: Remove a node with the specified value
-
Search: Find if a value exists in the list
-
Reverse: Reverse the entire linked list
-
-
-
๐ฎ Gameplay
-
-
Choose an operation from the buttons
-
Enter the required value (if needed)
-
Submit your answer
-
Earn points for correct operations
-
Level up as you progress!
-
-
-
๐ What is a Singly Linked List?
-
A singly linked list is a data structure where each element (node) contains data and a reference to the next node. The last node points to null, indicating the end of the list.
+
+
+
From f103d83d47320b535cabc59006af9d723c919ea9 Mon Sep 17 00:00:00 2001
From: AYUSH GAUTAM <142661926+Ayushgautam16@users.noreply.github.com>
Date: Wed, 29 Oct 2025 21:18:57 +0530
Subject: [PATCH 6/6] Godseye
---
.gitignore | 81 ++++++++------------------------------
LICENSE | 3 +-
README.md | 111 +++++++++++++++--------------------------------------
3 files changed, 49 insertions(+), 146 deletions(-)
diff --git a/.gitignore b/.gitignore
index c2365c8..6fafe04 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,71 +1,22 @@
-# Dependencies
-node_modules/
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-
-# Runtime data
-pids
-*.pid
-*.seed
-*.pid.lock
-
-# Coverage directory used by tools like istanbul
-coverage/
-
-# nyc test coverage
-.nyc_output
-
-# Grunt intermediate storage
-.grunt
-
-# Bower dependency directory
-bower_components
-
-# node-waf configuration
-.lock-wscript
-
-# Compiled binary addons
-build/Release
-
-# Dependency directories
-jspm_packages/
-
-# Optional npm cache directory
-.npm
-
-# Optional REPL history
-.node_repl_history
-
-# Output of 'npm pack'
-*.tgz
-
-# Yarn Integrity file
-.yarn-integrity
-
-# dotenv environment variables file
-.env
+# Python
+__pycache__/
+*.py[cod]
+*.egg-info/
+.venv/
+venv/
+env/
+
+# OS
+.DS_Store
-# IDE files
+# IDE
.vscode/
.idea/
-*.swp
-*.swo
-*~
-# OS generated files
-.DS_Store
-.DS_Store?
-._*
-.Spotlight-V100
-.Trashes
-ehthumbs.db
-Thumbs.db
+# Env
+.env
-# Logs
-logs
-*.log
+# Caches
+.pytest_cache/
+.mypy_cache/
-# Temporary files
-tmp/
-temp/
diff --git a/LICENSE b/LICENSE
index 0918486..656e8d6 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
MIT License
-Copyright (c) 2024 Smart Todo App
+Copyright (c) 2025
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -20,3 +20,4 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+
diff --git a/README.md b/README.md
index bdca072..19f63ec 100644
--- a/README.md
+++ b/README.md
@@ -1,95 +1,46 @@
-# ๐ Smart Todo App
+## Godseye OSINT Toolkit (MVP)
-A beautiful, feature-rich todo application built with vanilla HTML, CSS, and JavaScript. Features a stunning Notion-like design with advanced functionality.
+Godseye is a privacy-respecting, public-data OSINT toolkit. It aggregates open sources like crt.sh (certificate transparency), Wayback Machine, and GitHub to help investigate domains and usernames.
-## โจ Features
+### Features (MVP)
+- Domain enrichment: subdomains via crt.sh, historical URLs via Wayback Machine
+- Username enrichment: presence checks on popular platforms + GitHub profile summary
+- HTTP API (FastAPI) and CLI (Typer)
-- **๐จ Stunning Design**: Glassmorphism effects with backdrop blur and modern gradients
-- **๐ Smart Search**: Real-time search and filtering capabilities
-- **๐ท๏ธ Categories**: Organize todos by Personal, Work, Shopping, Health, and Learning
-- **โก Priority Levels**: Low, Medium, and High priority with color-coded badges
-- **๐ Due Dates**: Set deadlines with overdue warnings
-- **๐ Statistics Dashboard**: Live counts and progress tracking
-- **๐พ Local Storage**: Data persists between browser sessions
-- **๐ฑ Responsive Design**: Works perfectly on all devices
-- **โ๏ธ Edit & Delete**: Full CRUD operations for todos
+### Quickstart
-## ๐ ๏ธ Technologies Used
+1) Python 3.10+
-- **HTML5**: Semantic markup and modern structure
-- **CSS3**: Advanced styling with CSS variables, flexbox, and grid
-- **JavaScript ES6+**: Modern JavaScript with classes and modules
-- **Font Awesome**: Beautiful icons for enhanced UX
-- **Local Storage**: Client-side data persistence
-
-## ๐ Getting Started
-
-### Option 1: Direct Usage
-1. Clone or download this repository
-2. Open `index.html` in your web browser
-3. Start organizing your tasks!
-
-### Option 2: GitHub Pages (Recommended)
-1. Fork this repository to your GitHub account
-2. Go to Settings โ Pages
-3. Select source as "Deploy from a branch"
-4. Choose `main` branch and `/ (root)` folder
-5. Click Save - your app will be live in minutes!
-
-## ๐ฑ Features in Detail
-
-### Search & Filter
-- **Real-time Search**: Type to instantly find todos
-- **Status Filters**: View All, Pending, or Completed todos
-- **Smart Results**: Combines search and filter for precise results
-
-### Todo Management
-- **Add Todos**: Quick input with priority, category, and due date
-- **Edit Todos**: Click edit to modify existing tasks
-- **Complete/Undo**: Toggle completion status
-- **Delete**: Remove todos with confirmation
-
-### Visual Design
-- **Glassmorphism**: Modern translucent card design
-- **Color Coding**: Priority-based color schemes
-- **Responsive Layout**: Adapts to any screen size
-- **Smooth Animations**: Hover effects and transitions
-
-## ๐จ Customization
-
-The app uses CSS custom properties (variables) for easy theming:
-
-```css
-:root {
- --primary-color: #6366f1;
- --secondary-color: #8b5cf6;
- --accent-color: #06b6d4;
- /* ... more variables */
-}
+2) Create a virtual environment and install deps
+```bash
+python -m venv .venv
+. .venv/Scripts/activate # Windows PowerShell: . .venv/Scripts/Activate.ps1
+pip install -r requirements.txt
```
-## ๐ Project Structure
+3) (Optional) Configure environment variables
+Copy `.env.example` to `.env` and add tokens if you have them.
+4) Run the CLI
+```bash
+python -m godseye.cli domain example.com
+python -m godseye.cli username torvalds
```
-โโโ index.html # Main HTML file
-โโโ style.css # Styles and animations
-โโโ script.js # JavaScript functionality
-โโโ README.md # This file
-```
-
-## ๐ Live Demo
-Visit the live demo: [Your GitHub Pages URL will appear here]
-
-## ๐ค Contributing
-
-Feel free to fork this project and submit pull requests for any improvements!
+5) Run the API
+```bash
+uvicorn godseye.api.main:app --reload
+# Open: http://127.0.0.1:8000/docs
+```
-## ๐ License
+### Environment variables
+- `GITHUB_TOKEN` (optional): increases GitHub rate limits for user lookups.
-This project is open source and available under the [MIT License](LICENSE).
+### Notes
+- Only public sources are used. Respect rate limits and each source's ToS.
+- Results are best-effort and may contain inaccuracies. Always verify critical findings.
----
+### License
+MIT
-**Built with โค๏ธ using vanilla web technologies**