{"id":20355779,"url":"https://github.com/zackproser/teatutor","last_synced_at":"2025-04-12T02:50:48.227Z","repository":{"id":61517328,"uuid":"548165680","full_name":"zackproser/teatutor","owner":"zackproser","description":"Tea Tutor is a terminal UI (TUI) program that lets you take quizzes over SSH!","archived":false,"fork":false,"pushed_at":"2022-10-21T12:45:49.000Z","size":369,"stargazers_count":21,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-25T22:35:08.615Z","etag":null,"topics":["aws","bubbletea","golang","tui","tutorial"],"latest_commit_sha":null,"homepage":"https://medium.com/@zackproser/introducing-tea-tutor-a-quiz-service-you-connect-to-over-ssh-564efe963411","language":"Go","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/zackproser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-10-09T03:07:11.000Z","updated_at":"2024-05-14T17:47:45.000Z","dependencies_parsed_at":"2022-10-19T22:30:33.022Z","dependency_job_id":null,"html_url":"https://github.com/zackproser/teatutor","commit_stats":null,"previous_names":["zackproser/bubbletea-ssh-aws-quiz"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackproser%2Fteatutor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackproser%2Fteatutor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackproser%2Fteatutor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zackproser%2Fteatutor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zackproser","download_url":"https://codeload.github.com/zackproser/teatutor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248509191,"owners_count":21115959,"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":["aws","bubbletea","golang","tui","tutorial"],"created_at":"2024-11-14T23:14:04.133Z","updated_at":"2025-04-12T02:50:48.199Z","avatar_url":"https://github.com/zackproser.png","language":"Go","readme":"# Tea Tutor \n\n![Tea Tutor SSH Quiz application](./docs/logo.png)\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/zackproser/teatutor)](https://goreportcard.com/report/github.com/zackproser/teatutor)\n[![CircleCI](https://circleci.com/gh/zackproser/teatutor.svg?style=shield)](https://circleci.com/gh/zackproser/teatutor)\n\nThis is a [Bubbletea](https://github.com/charmbracelet/bubbletea) program designed to be run locally or over ssh. You can use it to define and serve quizzes on any subject. \n\n\n# Demo\n\n[![Tea Tutor Demo](http://img.youtube.com/vi/Dk2neG9vp84/0.jpg)](http://www.youtube.com/watch?v=Dk2neG9vp84 \"Tea Tutor Demo\")\n\nDepending on what I'm doing at the time - you may or may not have success hitting my test application: \n`ssh -p 23234 quiz.zackproser.com`. \n\n\n# App at a glance\n\nTea tutor helps you study whatever you want quickly, conveniently and discretely by providing a high quality set of questions and an easy to navigate, slide-deck-like interface that you can load in your terminal with a single command, e.g. `ssh -p 23234 quiz.zackproser.com`.\n\nFor the purposes of demonstration and development, the app currently hardcodes a custom set of AWS certification exam prep questions. \n\n\n![Bubbletea Quiz Over SSH](./docs/intro.png)\nWhen you first load the program, you are presented with a list of current study tracks to choose from. \n\n![Choose a study category](./docs/categories.png)\n\nChoose a study topic to begin.\n\n![Bubbletea quiz slide deck](./docs/quiz1_000.png)\n\nYou'll be asked a series of multiple choice and true or false questions that test your AWS product knowledge. You can page back and forth between questions and change your answers as needed. \n\n![Bubbletea quiz advancing](./docs/quiz2_000.png)\n\nWhen you complete your quiz, you'll be shown the results page that reviews the questions you answered, your responses and whether they were correct. \n\n![Results report](./docs/quiz-results2.png)\n\n\n# Usage \n\n## How the current questions system works\n\nAll questions are defined in the `questions.yml` file in the root of the project. Each of the categories defined in `questions.yml` is considered when rendering the category selection view that is shown immediately after the introduction view. In other words, if you create questions across 3 different categories, by filling in the `category:` field, then you'll see 3 categories in the picker when the app loads. \n\nTherefore, you could edit `questions.yml` to contain questions and answers on any subject you wish, then re-deploy your app to serve the new questions.\n\n## Run locally \n\n`go run main.go` \n\n## Run in server mode (to host over ssh)\n```bash \n# export the special env var to enable server mode \nexport QUIZ_SERVER=true \ngo run main.go\n```\n\nCurrently I've had the most success deploying the app via `tmux` - running `export QUIZ_SERVER=true \u0026\u0026 go run main.go` in a new tmux session on the server and then detaching from it. \nI expect this to change once I'm able to sort out some issues using Systemd unit files. \n\n## Connect to server as a client \n\n`ssh -p 23234 \u003cip-address-of-server\u003e`\n\nThere is no auth required - all ssh public keys are accepted. \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzackproser%2Fteatutor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzackproser%2Fteatutor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzackproser%2Fteatutor/lists"}