diff --git a/README.md b/README.md index 774741a..16f735b 100755 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- DSAVisualizer Banner + DSAVisualizer Banner

DSAVisualizer

@@ -12,32 +12,20 @@ Built with ❤️ by Sohan Rout

-

- Live Demo • - Report Bug • - Request Feature -

- ---

License: Apache 2.0 - Next.js - TailwindCSS - Made With Love +

+

+

Product Built Using:

+ + +

---- - -## Tech Stack 🚀 - -- Next.js -- TailwindCSS -- Vercel (Deployment) - ---- -## Features ✨ +## Features - DSA Algorithm Visualizer - Custom Array Input @@ -49,47 +37,26 @@ - Blog Explanations via Medium (Upcoming) - Queue Visualizer (Upcoming) ---- - -## Future Plans 🛠️ - -- Add Tree & Graph Visualizations -- Add Heap Sort -- Queue Implementation & Visualizer -- Write Detailed Blogs on Medium -- Collaborate with Colleges & Professors for Usage +## Future Plans +- Make the platform interactive - Improve Mobile Responsiveness - Social Media Promotion ---- - -## Blogs ✍️ - -Coming Soon on [Medium](https://medium.com/@sohan-rout) - ---- ## Connect With Me -- [LinkedIn](https://www.linkedin.com/in/sohan-rout) -- [Medium](https://medium.com/@sohan-rout) - ---- + + LinkedIn + -## License 📄 +## License Apache 2.0 License — See `LICENSE` for details. ---- - # Contribution See [CONTRIBUTING.md](./CONTRIBUTING.md) Code of Conduct — [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md) ---- - -

- Made with ❤️ by Sohan Rout -

\ No newline at end of file +--- \ No newline at end of file diff --git a/next-sitemap.config.js b/next-sitemap.config.js index 09005b5..0692de9 100755 --- a/next-sitemap.config.js +++ b/next-sitemap.config.js @@ -1,24 +1,27 @@ const fs = require('fs'); const path = require('path'); -// Helper function to recursively get all routes from app/ folder -function getAllAppRoutes(dir = 'app', prefix = '') { +// Scan app/ folder recursively, include only folders with page.jsx +function getAllPages(dir = 'app', prefix = '') { const routes = []; const items = fs.readdirSync(dir); - items.forEach((item) => { + for (const item of items) { const fullPath = path.join(dir, item); const stat = fs.statSync(fullPath); if (stat.isDirectory()) { - if (item === 'api') return; // skip API routes - routes.push(...getAllAppRoutes(fullPath, `${prefix}/${item}`)); - } else if (item.endsWith('.js') || item.endsWith('.tsx')) { - let route = `${prefix}/${item.replace(/\.js|\.tsx$/, '')}`; - if (route.endsWith('/page')) route = route.replace('/page', ''); - routes.push(route); + if (item === 'api' || item.startsWith('_')) continue; // skip API and special folders + + const pageFile = fs.readdirSync(fullPath).find(f => f === 'page.jsx' || f === 'page.tsx'); + if (pageFile) { + routes.push(`${prefix}/${item}`); + } + + // Recurse into subfolders + routes.push(...getAllPages(fullPath, `${prefix}/${item}`)); } - }); + } return routes; } @@ -33,8 +36,8 @@ const config = { lastmod: new Date().toISOString(), }), additionalPaths: async (config) => { - const appRoutes = getAllAppRoutes(); // auto-detect all pages - return appRoutes.map(route => ({ + const allRoutes = getAllPages(); // recursively get all module pages + return allRoutes.map(route => ({ loc: route, lastmod: new Date().toISOString(), })); diff --git a/public/sitemap-0.xml b/public/sitemap-0.xml index b1574c6..3c0d4e4 100755 --- a/public/sitemap-0.xml +++ b/public/sitemap-0.xml @@ -1,4 +1,48 @@ -https://dsavisualizer.in/contexts/AuthContext2025-10-04T18:29:23.213Z +https://dsavisualizer.in/blogs2025-10-04T18:49:05.527Z +https://dsavisualizer.in/blogs/Content/dsaDifferent2025-10-04T18:49:05.530Z +https://dsavisualizer.in/blogs/Content/dsaWebDev2025-10-04T18:49:05.530Z +https://dsavisualizer.in/blogs/Content/timeRequired2025-10-04T18:49:05.530Z +https://dsavisualizer.in/blogs/Content/whatIsDS2025-10-04T18:49:05.530Z +https://dsavisualizer.in/dashboard2025-10-04T18:49:05.530Z +https://dsavisualizer.in/login2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/linkedList/operations/comparison2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/linkedList/operations/deletion2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/linkedList/operations/insertion2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/linkedList/operations/merge2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/linkedList/operations/reverse2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/linkedList/operations/traversal2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/linkedList/types/circular2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/linkedList/types/doubly2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/linkedList/types/singly2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/queue/implementation/array2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/queue/implementation/linkedList2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/queue/operations/enqueue-dequeue2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/queue/operations/isempty2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/queue/operations/isfull2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/queue/operations/peek-front2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/queue/types/circular2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/queue/types/deque2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/queue/types/multiple2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/queue/types/priority2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/queue/types/singleEnded2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/searching/binarysearch2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/searching/linearsearch2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/sorting/bubblesort2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/sorting/insertionsort2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/sorting/mergesort2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/sorting/quicksort2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/sorting/selectionsort2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/stack/implementation/usingArray2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/stack/implementation/usingLinkedList2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/stack/isempty2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/stack/isfull2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/stack/peek2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/stack/polish/postfix2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/stack/polish/prefix2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/stack/push-pop2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/trees/binaryTree/types2025-10-04T18:49:05.530Z +https://dsavisualizer.in/visualizer/trees/traversing/in-order2025-10-04T18:49:05.530Z \ No newline at end of file