{"id":13406547,"url":"https://github.com/benji6/moodtracker","last_synced_at":"2025-09-13T00:36:33.486Z","repository":{"id":38820130,"uuid":"253717810","full_name":"benji6/moodtracker","owner":"benji6","description":"A serverless and offline-first PWA that lets you track your mood","archived":false,"fork":false,"pushed_at":"2024-09-16T12:55:24.000Z","size":15883,"stargazers_count":44,"open_issues_count":2,"forks_count":7,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-09-17T05:33:58.913Z","etag":null,"topics":["journal","mindfulness","mood-journal","mood-tracker","moodjournal","moods","moodtracker","offline","progressive-web-app","pwa","serverless","tracker","wellbeing"],"latest_commit_sha":null,"homepage":"https://moodtracker.link","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/benji6.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":"2020-04-07T07:22:55.000Z","updated_at":"2024-09-16T12:55:28.000Z","dependencies_parsed_at":"2023-10-20T18:12:01.597Z","dependency_job_id":"76b33470-8f4f-48a4-95e1-44eef39fe0d9","html_url":"https://github.com/benji6/moodtracker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benji6%2Fmoodtracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benji6%2Fmoodtracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benji6%2Fmoodtracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benji6%2Fmoodtracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benji6","download_url":"https://codeload.github.com/benji6/moodtracker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249736540,"owners_count":21318263,"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":["journal","mindfulness","mood-journal","mood-tracker","moodjournal","moods","moodtracker","offline","progressive-web-app","pwa","serverless","tracker","wellbeing"],"created_at":"2024-07-30T19:02:33.268Z","updated_at":"2025-04-19T16:19:28.306Z","avatar_url":"https://github.com/benji6.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# MoodTracker\n\n[![CI](https://github.com/benji6/moodtracker/actions/workflows/main.yml/badge.svg)](https://github.com/benji6/moodtracker/actions/workflows/main.yml)\n[![Netlify Status](https://api.netlify.com/api/v1/badges/0d744c93-11e8-4072-85e2-4a168c1ae8ae/deploy-status)](https://app.netlify.com/sites/benji6-moodtracker/deploys)\n\n## About\n\nMoodTracker is a free and open source web app that aims to help you understand yourself better. Track your emotional landscape, keep a mood journal, time your meditations, keep a meditation log and gain new insights into yourself. It's simple to use, works offline and because it runs in your browser you can use it across all your devices!\n\n[Check it out here](https://moodtracker.link)\n\nThe MoodTracker UI was built using a component library I made called [Eri](https://github.com/benji6/eri).\n\n## Getting started\n\n### Dependencies required on host machine\n\n- [Node.js](https://nodejs.org) (version specified in [.nvmrc](/client/.nvmrc))\n- [Python](https://www.python.org) (latest version 3.x)\n- [Poetry](https://python-poetry.org/docs/) (latest version 1.x)\n\n### Install project dependencies\n\n```sh\nmake init\n```\n\n### Run frontend locally\n\n```sh\nmake start\n```\n\n### Test application locally\n\nYou will need to be running the client locally on the default port for the end-to-end tests to pass and you will need credentials for a registered user on the platform that you can use to set the `CYPRESS_MOODTRACKER_TEST_USER_EMAIL` and `CYPRESS_MOODTRACKER_TEST_USER_PASSWORD` environment variables.\n\n```sh\nmake test\n```\n\n### Deploy\n\n#### Backend and infrastructure\n\nMajority of the infrastructure is managed with AWS CloudFormation (via [Troposphere](https://troposphere.readthedocs.io)). Firebase, secrets and a few AWS things that aren't well supported have been done manually.\n\n```sh\nmake deploy\n```\n\n**N.B. making changes to the API doesn't trigger a new deployment, but you can trigger a manual deployment by copying the value of the `ApiGatewayDeployCommand` output and running that.**\n\n#### UI\n\nContinuously deployed with [Netlify](http://netlify.com).\n\n**N.B. Icons are stored in version control and are generated by running `npm run icons` in the `/client` dir.**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenji6%2Fmoodtracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenji6%2Fmoodtracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenji6%2Fmoodtracker/lists"}