{"id":18440320,"url":"https://github.com/buikhacnam/algo-notebook","last_synced_at":"2026-05-04T21:40:08.801Z","repository":{"id":188838556,"uuid":"678201136","full_name":"buikhacnam/algo-notebook","owner":"buikhacnam","description":"Revise algorithms problems and take your notes!","archived":false,"fork":false,"pushed_at":"2024-03-12T03:51:43.000Z","size":2280,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-16T11:14:21.120Z","etag":null,"topics":["algorithms","app-router-nextjs","contentlayer","mdx","nextjs","vercel"],"latest_commit_sha":null,"homepage":"https://algonotebook.vercel.app","language":"MDX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/buikhacnam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-14T02:06:50.000Z","updated_at":"2023-12-26T03:36:04.000Z","dependencies_parsed_at":"2023-08-17T04:44:54.369Z","dependency_job_id":"e36f1374-2244-4ec1-b82b-0da73a113c6c","html_url":"https://github.com/buikhacnam/algo-notebook","commit_stats":null,"previous_names":["buikhacnam/algo-notebook"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buikhacnam%2Falgo-notebook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buikhacnam%2Falgo-notebook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buikhacnam%2Falgo-notebook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buikhacnam%2Falgo-notebook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/buikhacnam","download_url":"https://codeload.github.com/buikhacnam/algo-notebook/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248905676,"owners_count":21181028,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","app-router-nextjs","contentlayer","mdx","nextjs","vercel"],"created_at":"2024-11-06T06:29:34.480Z","updated_at":"2026-05-04T21:40:08.753Z","avatar_url":"https://github.com/buikhacnam.png","language":"MDX","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Algonotebook\n\nA notebook for quick algorithms and data structures revision.\n\nVisit: https://algonotebook.vercel.app/dashboard\n\nThe project also powers the [Leetcode Assistant Chrome Extension](https://chrome.google.com/webstore/detail/leetcode-assistant/nbeehcepchjjlajedbfbjcfdmgcoioja).\n\n## Features\n\n- Quickly browse algorithms and data structures by category.\n- Take notes with fully fledged markdown editor and save them to your account.\n- Update problem status or save them to favorite list to keep track of your progress.\n- Solution includes most of the main programming languages.\n- Dark mode support.\n\n## Technologies\n\n- Next.js 13 using /app directory and server components\n- Authentication with NextAuth.js\n- MySQL database using Prisma ORM\n- Tailwind CSS and Shadcn UI for styling and components\n- Static data generation with Contentlayer and MDX\n- Markdown editor with Editor.js\n\n## Pre-requisites\n\n- Node.js\n- Yarn\n- MySQL database\n\n## Run locally\n\n1. Clone the repository\n2. Install dependencies.\n\n```sh\nyarn install\n```\n\n3. Copy content of `.env.example` file to `.env.local` and fill the environment variables.\n\n4. Generate content to static data (optional):\n\n```sh\nyarn contentlayer build\n```\n\n5. Run the development server:\n\n```sh\nyarn dev\n```\n\n## Add new content\n\nRun the following script to add new content:\n\n```sh\nyarn leetcode [leetcode link / problem slug] [category]\n```\n\nFor example:\n\n```sh\nyarn leetcode https://leetcode.com/problems/reverse-linked-list/ linked-list\n```\n\nor\n\n```sh\nyarn leetcode reverse-linked-list linked-list\n```\n\nThis will create a new markdown file in the `content/problems/[category]` folder.\n\nNow you can visit `http://localhost:3000/problems/[category]/[problem-slug]` to see the new problem.\n\nFor example: https://algonotebook.vercel.app/problems/linked-list/reverse-linked-list\n\n## Add new content manually\n\n1. In folder `content/problems` there are folders for each category. Inside each category folder there are markdown files for each problem. To add a new problem, create a new markdown file (named as the problem separated by `dashes` and with the extension `.mdx`)\n   inside the category folder and add the following frontmatter, for example:\n\n   ```mdx\n   ---\n    title: Reverse Linked List\n    category: Linked List\n    difficulty: Easy\n   ---\n   ```\n\n   Or you can use our [snippet](#snippet) to generate the markdown template.\n\n2. Run `yarn contentlayer build` to generate the static data.\n\n## Snippet\n\nTo generate a new problem markdown template, you can use our snippet by following steps:\n\n1. Copy the content of `mdx-snippet.json` file in the root directory.\n\n2. Open the command palette (Ctrl + Shift + P) and type `Configure User Snippets`.\n\n3. Find the `mdx.json` file and paste the content of `mdx-snippet.json` file from step 1.\n\n4. Now you can use the snippet by typing `algonotebook` and pressing `Tab` key.\n\n## Roadmap\n\n### Categories (problems count)\n\n- Arrays and Hashing `(8)`\n- Two Pointers `(3)`\n- Sliding Window `(4)`\n- Stack `(1)`\n- Binary Search `(2)`\n- Linked List `(6)`\n- Trees `(11)`\n- Tries `(3)`\n- Heap and Priority Queue `(1)`\n- Backtracking `(2)`\n- Graphs `(6)`\n- Advanced Graphs `(1)`\n- 1-D Dynamic Programming `(10)`\n- 2-D Dynamic Programming `(2)`\n- Greedy `(2)`\n- Intervals `(5)`\n- Math and Geometry `(3)`\n- Bit Manipulation `(5)`\n\n## References\n\nThe following resources were used as reference for the content of this notebook:\n\n- https://leetcode.com/problemset/all\n- https://github.com/neetcode-gh/leetcode\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuikhacnam%2Falgo-notebook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbuikhacnam%2Falgo-notebook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuikhacnam%2Falgo-notebook/lists"}