{"id":13829215,"url":"https://github.com/rtzll/flask-todolist","last_synced_at":"2026-02-15T17:50:58.605Z","repository":{"id":25402695,"uuid":"28831540","full_name":"rtzll/flask-todolist","owner":"rtzll","description":"exemplary flask application - small to-do list WebApp example","archived":false,"fork":false,"pushed_at":"2026-02-15T09:40:01.000Z","size":584,"stargazers_count":160,"open_issues_count":0,"forks_count":119,"subscribers_count":10,"default_branch":"main","last_synced_at":"2026-02-15T14:26:53.773Z","etag":null,"topics":["flask","python","todolist","webapp"],"latest_commit_sha":null,"homepage":"https://rtzll.github.io/flask-todolist","language":"Python","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/rtzll.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-01-05T21:00:19.000Z","updated_at":"2026-02-15T09:40:04.000Z","dependencies_parsed_at":"2024-01-13T16:25:33.979Z","dependency_job_id":"fc4da7cb-d9ba-4be4-921c-3d8a0874d5b2","html_url":"https://github.com/rtzll/flask-todolist","commit_stats":null,"previous_names":["0xfoo/flask-restless-todo-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rtzll/flask-todolist","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtzll%2Fflask-todolist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtzll%2Fflask-todolist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtzll%2Fflask-todolist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtzll%2Fflask-todolist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rtzll","download_url":"https://codeload.github.com/rtzll/flask-todolist/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rtzll%2Fflask-todolist/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29486040,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T15:33:17.885Z","status":"ssl_error","status_checked_at":"2026-02-15T15:32:53.698Z","response_time":118,"last_error":"SSL_read: 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":["flask","python","todolist","webapp"],"created_at":"2024-08-04T10:00:27.769Z","updated_at":"2026-02-15T17:50:58.599Z","avatar_url":"https://github.com/rtzll.png","language":"Python","funding_links":[],"categories":["Available Apps"],"sub_categories":[],"readme":"# Flask-Todolist\n\nFlask-Todolist is a simple To Do List web application with the most basic\nfeatures of most web apps, i.e. accounts/login, API and (somewhat) interactive\nUI.\n\n---\n\nCSS | [Skeleton](http://getskeleton.com/) JS | [jQuery](https://jquery.com/)\n\nI've also build a quite similar app in Django:\nhttps://github.com/rtzll/django-todolist\n\n## Explore\n\nTry it out!\n\n### Docker\n\nUsing `docker-compose` you can simple run:\n\n    docker-compose build\n    docker-compose up\n\nAnd the application will run on http://localhost:8000/\n\n(It's serving the app using [gunicorn](http://gunicorn.org/) which you would use\nfor deployment, instead of just running `flask run`.)\n\n### Manually\n\nIf you prefer to run it directly on your local machine, you can use\n[uv](https://docs.astral.sh/uv/) for dependency management.\n\n    uv sync\n    APP_CONFIG=development FLASK_APP=todolist.py uv run flask run\n\nTo add some 'play' data you can run\n\n    uv run flask fill-db\n\nTo run the test suite:\n\n    uv run pytest -v\n\nTo run type checks:\n\n    uv run basedpyright --level error\n\nTo run the test suite using Docker:\n\n    docker-compose --profile test run --rm tests\n\nNow you can browse the API: http://localhost:5000/api/users\n\nPick a user, login as the user. Default password after `fill-db` is\n_correcthorsebatterystaple_. Click around, there is not too much, but I like the\noverview under: http://localhost:5000/todolists (You must be logged in to see\nit.)\n\n## Extensions\n\nIn the process of this project I used a couple of extensions.\n\n| Usage       | Flask-Extension                                                 |\n| ----------- | --------------------------------------------------------------- |\n| Model \u0026 ORM | [Flask-SQLAlchemy](http://flask-sqlalchemy.pocoo.org/latest/)   |\n| Migration   | [Flaks-Migrate](http://flask-migrate.readthedocs.io/en/latest/) |\n| Forms       | [Flask-WTF](https://flask-wtf.readthedocs.org/en/latest/)       |\n| Login       | [Flask-Login](https://flask-login.readthedocs.org/en/latest/)   |\n| Testing     | [Flask-Testing](https://pythonhosted.org/Flask-Testing/)        |\n\nI tried out some more, but for the scope of this endeavor the above mentioned\nextensions sufficed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frtzll%2Fflask-todolist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frtzll%2Fflask-todolist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frtzll%2Fflask-todolist/lists"}