Small terminal app that shows git commits from the last 24 hours and week, current weather, some self care advice, and you current todo list tasks inspired by @notwaldorf tiny-care-terminal
I started this project to accomplish a few different goals
- Teach myself the basics of the Go language
- Practice leveraging generative AI tools like copilot and chatgpt for development
- Create a fun terminal app
go install github.com/DMcP89/tinycare-tui@latest
Set the following environment variables to configure Tinycare-tui
# API Keys
GITHUB_TOKEN=123456789abcdefg # Set this variable to pull commits from Github instead of using local repositories
OPEN_WEATHER_MAP_API_KEY=123456789abcdefg # Set this variable to get weather info from OpenWeatherMap.org
TODOIST_TOKEN=123456789abcdefg # Set this variable to pull todos from Todoist
# Settings
TINYCARE_POSTAL_CODE=123456 # Set this to the postal code that you want to pull weather info for
TINYCARE_WORKSPACE=/path/to/directory/with/git/repos,/another/path/to/repos # Set this to tell the app where to look for git repos to pull commits from
TODO_FILE=/path/to/todolist/file # Set this to tell the app where your local task list is
tinycare-tui
- Allow for focusing on each box
- Expand on self care reminders
- Remove twitter scraping code
- Replace hardcoded values with env variables
- Refresh the view on 'r'
- Have views refresh in 30 second intervals
- Have 'q' exit the app
- Optimize with go routines
- Allow for multiple git repo locations
- Allow for local todo list for todays tasks
- Have task view show completed tasks as well
- Provide option to pull commits from github instead of from local repos
- Add error handling for missing environment variables
- Create tests
- Performance tuning
- pulling commits from local repos to use goroutines and channels
- Rework refresh function to leverage text view's SetChangeFunc()
- Implement caching for API returns
- Improve performance for pulling commits from local repos
- Logging
- Refactoring
- Refactor GitHub interactions to use go-github
- Move environment variable handling out of util modules
- Refactor tests to leverage cases
- Convert time on commits to days when >24 hours
- Write installation guide
- Write configuration guide
- Fix time display on commits to adjust to timezone
- Update github integration to include events from user's orgs
- Update todoist integration to include overdue tasks
- Add functionality to mark tasks done
- Add joke API integration
- Fix silent failure when attempting to fetch commits from nonexistant directory
- Task Warrior integration
- Have project added to awesome-go
- reduce cyclomatic complexity of main function in main.go for Go Report Card
- setup code coverage Report
- Create documentation
- Add bages to README
- Open PR to awesome-Go
This is primarily a learning project for me so I will be working on it on and off but Issues and PRs are most welcome.