{"id":20126697,"url":"https://github.com/cc-d/liberlife","last_synced_at":"2026-04-11T17:06:19.859Z","repository":{"id":197873458,"uuid":"699531914","full_name":"cc-d/liberlife","owner":"cc-d","description":"100% libre way of keeping track of responsibilities and achieving goals with a very nice ui","archived":false,"fork":false,"pushed_at":"2024-07-25T14:33:11.000Z","size":34572,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-13T08:12:50.074Z","etag":null,"topics":["async","docker","docker-compose","fastapi","git-crypt","libre","nginx","python","react","shell","todo","typescript"],"latest_commit_sha":null,"homepage":"https://life.liberfy.ai","language":"TypeScript","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/cc-d.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-10-02T20:22:09.000Z","updated_at":"2024-07-25T14:33:15.000Z","dependencies_parsed_at":"2023-10-03T05:56:06.264Z","dependency_job_id":"cc15957b-a718-4d9f-93e8-367fcc6b2416","html_url":"https://github.com/cc-d/liberlife","commit_stats":null,"previous_names":["cc-d/liberlife"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cc-d%2Fliberlife","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cc-d%2Fliberlife/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cc-d%2Fliberlife/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cc-d%2Fliberlife/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cc-d","download_url":"https://codeload.github.com/cc-d/liberlife/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241570921,"owners_count":19984002,"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":["async","docker","docker-compose","fastapi","git-crypt","libre","nginx","python","react","shell","todo","typescript"],"created_at":"2024-11-13T20:17:18.602Z","updated_at":"2026-04-11T17:06:19.817Z","avatar_url":"https://github.com/cc-d.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# liberlife\n\n### **LIVE:** [https://life.liberfy.ai](https://life.liberfy.ai)\n\n#### (no password requirements)\n\nSee [https://life.liberfy.ai/demo](https://life.liberfy.ai/demo) for a non-persistent demo of the frontend.\n\nThis seems like a fun, simple little project that may end up being useful. It's primarily intended as a personal life tracker tool for my own use.\n\nIt's starting to look pretty good. If you use this, please attribute me in some way. If you use this to make money, attribute me some money.\n\n#### download android .apk\n\nThere is an apk that can be downloaded from [https://life.liberfy.ai/liberlife.apk](https://life.liberfy.ai/liberlife.apk)\n\n### Project Structure\n\n#### frontend/\n\nThis directory holds the React application including all source code, configurations, and dependencies.\n\n- `/build/`: Compiled production build of the React app.\n- `/public/`: Static assets like `favicon.ico` and `index.html` template.\n- `/src/`: Source code for the app including components, contexts, pages, and utilities.\n  - `/api/`: TypeScript files defining the API models, services, and schemas.\n  - `/app/`: Core application setup and theme configuration.\n  - `/components/`: Reusable React components used throughout the app.\n  - `/contexts/`: React context providers for application-wide state management.\n  - `/pages/`: Components representing entire pages in the app, organized by route.\n  - `/utils/`: Utility functions and helpers for various features in the app.\n\n#### api/\n\nContains the backend API source code, including database models, routes, schemas, and utility functions.\n\n- `/alembic/`: Alembic migrations for database schema changes.\n- `/app/`: Core backend application files, including API route definitions.\n  - `/crud/`: CRUD utilities for database operations.\n  - `/db/`: Database session management and model definitions.\n  - `/routes/`: API endpoint definitions.\n  - `/schemas/`: Pydantic schemas for data validation and serialization.\n  - `/utils/`: Helper functions and utilities for the backend.\n- `/tests/`: Unit and integration tests for the API.\n\n#### mobile/\n\nContains the mobile application codebase if one exists. This is where you can find the Android app implementation \n\n- `/app/`: The source code for the mobile app.\n- `/build/`: Compiled output for the mobile app.\n\n#### Lighthouse\n\n![!Lighthouse score](static/lighthouse.png)\n\n#### Dark Mode Preview:\n\n![!Dark Mode (default) preview](static/dark1.png)\n![!Dark Mode (default) preview](static/dark2.png)\n![!Dark Mode (default) preview](static/dark0.png)\n\n#### Light Mode Preview:\n\n![!Lite Mode preview](static/lite0.png)\n![!Lite Mode preview](static/lite1.png)\n\n## async tests\n\nlol exceptions padded test coverage\n\n```\n---------- coverage: platform darwin, python 3.11.5-final-0 ----------\nName                        Stmts   Miss  Cover   Missing\n---------------------------------------------------------\n__init__.py                     0      0   100%\napp/__init__.py                 0      0   100%\napp/config.py                  21      0   100%\napp/crud/__init__.py            0      0   100%\napp/crud/goal.py               36      3    92%   56-57, 66\napp/crud/snapshots.py          21     12    43%   27, 34-52\napp/crud/user.py               30     14    53%   24-32, 43-49, 55-57\napp/db/__init__.py             24     12    50%   13-17, 21-25, 29-33\napp/db/common.py                8      4    50%   7, 14-16\napp/db/models.py               81      7    91%   116, 131-136, 173\napp/db/session.py              13      0   100%\napp/main.py                    23      4    83%   21, 26, 32-35\napp/routes/__init__.py          5      0   100%\napp/routes/goal.py            117     26    78%   40, 45, 56, 68, 91, 103, 116, 128, 134-135, 145, 149, 163, 165, 170, 185, 189-192, 198-200, 212, 217-225\napp/routes/snapshot.py         40     13    68%   35-37, 46-49, 66, 73, 78-81\napp/routes/template.py         75     45    40%   25-33, 39-48, 57-61, 68-73, 83-88, 97-100, 110-115, 126-129, 142-148, 158-162\napp/routes/user.py             36      8    78%   28-36, 61\napp/schemas/__init__.py         1      0   100%\napp/schemas/common.py           9      0   100%\napp/schemas/goal.py            53      0   100%\napp/schemas/snapshot.py        20      0   100%\napp/schemas/user.py            16      0   100%\napp/utils/__init__.py           0      0   100%\napp/utils/dependencies.py      18      1    94%   28\napp/utils/httperrors.py       190      0   100%\napp/utils/middleware.py        16      0   100%\napp/utils/security.py          34      7    79%   26, 49-55\n---------------------------------------------------------\nTOTAL                         887    156    82%\n\n\n======================================= 88 passed in 4.62s\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcc-d%2Fliberlife","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcc-d%2Fliberlife","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcc-d%2Fliberlife/lists"}