{"id":22882966,"url":"https://github.com/iamsuudi/to-do-list","last_synced_at":"2026-05-05T14:33:41.537Z","repository":{"id":245651330,"uuid":"740363519","full_name":"iamsuudi/to-do-list","owner":"iamsuudi","description":"Todo app which helps users create, edit, customize the date and priority of each tasks","archived":false,"fork":false,"pushed_at":"2024-08-12T10:44:06.000Z","size":850,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-31T16:59:12.929Z","etag":null,"topics":["date-fns","javascript","json","localstorage","module-pattern","sass","webpack"],"latest_commit_sha":null,"homepage":"https://iamsuudi.github.io/to-do-list/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iamsuudi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-01-08T07:38:30.000Z","updated_at":"2024-08-12T10:45:42.000Z","dependencies_parsed_at":"2024-06-23T06:43:07.464Z","dependency_job_id":"50e0d714-7c9a-44df-b869-770db72639d1","html_url":"https://github.com/iamsuudi/to-do-list","commit_stats":null,"previous_names":["iamsuudi/to-do-list"],"tags_count":0,"template":false,"template_full_name":"iamsuudi/my-vanilla-template","purl":"pkg:github/iamsuudi/to-do-list","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamsuudi%2Fto-do-list","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamsuudi%2Fto-do-list/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamsuudi%2Fto-do-list/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamsuudi%2Fto-do-list/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iamsuudi","download_url":"https://codeload.github.com/iamsuudi/to-do-list/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iamsuudi%2Fto-do-list/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32653590,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-05T11:29:49.557Z","status":"ssl_error","status_checked_at":"2026-05-05T11:29:48.587Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["date-fns","javascript","json","localstorage","module-pattern","sass","webpack"],"created_at":"2024-12-13T18:30:55.894Z","updated_at":"2026-05-05T14:33:41.521Z","avatar_url":"https://github.com/iamsuudi.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Todo List App\n\nWebsite: https://iamsuudi.github.io/to-do-list/\n\nIt's completely open at the moment, just run and try it out!\n\n---\n\n## Tech Stack\n\n- **Front End:** HTML | JavaScript | CSS\n- **Bundler:** Webpack\n- **Storage:** LocalStorage\n- **Other Libraries:** Sass, Data-fns\n\n---\n\n## Goal\n\nMy goal was to create an application where the user can practice speaking in a specific language with an AI. Why? Well I think it can be quite difficult to practice when you're not around a lot of native speakers. Travel can be expensive, and for introverts like me it might not be ideal at times.\n\n---\n\n## Key Features \n\n- View all projects.\n\n- Create projects ( categories )\n\n- View all todos in each project ( like the title, note and its duedate )\n\n- Expand a single todo to see/edit its details.\n\n- Marking a todo as completed\n\n- Delete a todo.\n\n---\n\n## What I learned\n\n1. Separating DOM related stuff from application logic.\n\n2. Mastering webpack in and out and configuring it to own need.\n\n3. Using embedded LocalStorage to store my data in the browser.\n\n4. Using libraries like date-fns for date related stuff.\n\n5. Using git subtrees to deploy github pages. \n\n6. Using JSON for data transportation.\n\n7. I faced too much hard code repetition of DOM manipulations in vanilla javascript which I then created my own solution for it, which was setting up mini react-like class constructor which generates components for me on every instanciation.\n\n8. Understaing what frameworks/libraries like react do for us under-the-hood.\n\n\n---\n\n## Project Images\n\n**Landing Page**\n\nThis is the landing page for my web application. I added some cool hover effects to the info cards.\n\n![Landing Page](./src/assets/readme/image.png \"Landing Page\")\n\n---\n\n## Setup\n\nInstallation:\n\n```bash\ngit clone git@github.com:iamsuudi/to-do-list.git\n```\nInstall Dependencies:\n\n```bash\nnpm install\n```\n\nRunning Dev Server:\n\n```bash\nnpm run dev\n```\n\nRunning Prod Server:\n\n```bash\nnpm run build\nnpm start\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamsuudi%2Fto-do-list","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiamsuudi%2Fto-do-list","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamsuudi%2Fto-do-list/lists"}