{"id":22783212,"url":"https://github.com/gregolive/todo-list","last_synced_at":"2026-04-09T08:46:50.986Z","repository":{"id":183623008,"uuid":"461134313","full_name":"gregolive/todo-list","owner":"gregolive","description":"Create todo lists with listify.","archived":false,"fork":false,"pushed_at":"2022-03-01T16:02:12.000Z","size":14989,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-05T16:40:24.864Z","etag":null,"topics":["css","javascript"],"latest_commit_sha":null,"homepage":"https://gregolive.github.io/todo-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/gregolive.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}},"created_at":"2022-02-19T08:42:54.000Z","updated_at":"2022-02-28T15:13:49.000Z","dependencies_parsed_at":"2023-07-25T07:27:48.012Z","dependency_job_id":"e4583f94-104e-421d-b44a-9b9762af2f00","html_url":"https://github.com/gregolive/todo-list","commit_stats":null,"previous_names":["gregolive/todo-list"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregolive%2Ftodo-list","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregolive%2Ftodo-list/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregolive%2Ftodo-list/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregolive%2Ftodo-list/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gregolive","download_url":"https://codeload.github.com/gregolive/todo-list/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246334430,"owners_count":20760644,"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":["css","javascript"],"created_at":"2024-12-11T22:07:21.083Z","updated_at":"2026-04-09T08:46:45.952Z","avatar_url":"https://github.com/gregolive.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Listify\n\nAn app for creating local todo lists.\n\n[Live demo](https://gregolive.github.io/todo-list/) 👈\n\n## Functionality\n\n- Add new todo lists that contain a title, description, due date, priority, and list of todo items\n- Each list is assigned to a group folder, each of which have a name and icon color\n- Lists and groups are saved in the user's brower via Javascript's \u003ccode\u003elocalStorage\u003c/code\u003e object\n- The sidebar contains all groups and links to their list's so that the user can open a list in the main view\n- On a new browser session a default group and list are created\n- Users can delete and edit groups and lists via dropdown menus in the sidebar and main view respectively\n- Styling and Javascript for showing/hiding groups lists via Bootstrap\n\n## Reflection\n\nBuilding this todo app felt like I was making my first real-ish Javacript app, but lack of a database to save data to was limiting. There were a few difficulties with only using \u003ccode\u003elocalStorage\u003c/code\u003e, such as all the object types being saved together. I tried to limit this intermixing of groups, lists, and todos by only pushing groups to browser storage, saving lists within its group, and saving todo's to their list. Another difficulty was that the localStorage requires that the objects be saved as a stringified key value pair.\n\nAgain for this app I used webpack's \u003ccode\u003eHtmlWebpackPlugin\u003c/code\u003e to build the html file dynamically, however I am not fully sold on the benefits of it. Building the ***entire*** HTML file with JS felt much more time consuming for even a project of this scale and I feel that going forward a better middle ground would be to create the static elements (sidebar, header, etc.) in the index.html file and add dynamic elements (to do list info, etc.) with JS.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregolive%2Ftodo-list","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgregolive%2Ftodo-list","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregolive%2Ftodo-list/lists"}