{"id":16687438,"url":"https://github.com/nikolajlauridsen/raspberrytimebuddy","last_synced_at":"2026-04-13T07:07:22.155Z","repository":{"id":71538058,"uuid":"78310871","full_name":"nikolajlauridsen/RaspberryTimebuddy","owner":"nikolajlauridsen","description":"A raspberry pi productivity tool","archived":false,"fork":false,"pushed_at":"2017-03-22T10:09:29.000Z","size":6595,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-20T11:48:14.994Z","etag":null,"topics":["flask-web","iot","pomodoro","pomodoro-technique","productivity","raspberry-pi","timer"],"latest_commit_sha":null,"homepage":"https://nikolajlauridsen.github.io/RaspberryTimebuddy/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nikolajlauridsen.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-01-07T23:52:38.000Z","updated_at":"2017-03-03T16:04:38.000Z","dependencies_parsed_at":"2023-02-27T13:31:43.340Z","dependency_job_id":null,"html_url":"https://github.com/nikolajlauridsen/RaspberryTimebuddy","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/nikolajlauridsen%2FRaspberryTimebuddy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikolajlauridsen%2FRaspberryTimebuddy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikolajlauridsen%2FRaspberryTimebuddy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikolajlauridsen%2FRaspberryTimebuddy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nikolajlauridsen","download_url":"https://codeload.github.com/nikolajlauridsen/RaspberryTimebuddy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243440122,"owners_count":20291235,"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":["flask-web","iot","pomodoro","pomodoro-technique","productivity","raspberry-pi","timer"],"created_at":"2024-10-12T15:09:08.324Z","updated_at":"2025-12-30T10:29:08.732Z","avatar_url":"https://github.com/nikolajlauridsen.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TimeBuddy\n\n![TimeBuddy](https://raw.githubusercontent.com/nikolajlauridsen/RaspberryTimebuddy/master/Documentation/Images/timebuddy.jpg)\n\n## Project Background\nTimeBuddy is built as a part of a school project, the given subject is \n\"On the Edge of Time\", the general theme is that time is a shrinking commodity \nand our task is to create a product that can somehow alleviate that. \n\nConsidering how it's impossible to increase the amount of time available we \nquickly agreed that a product that helps one increase productivity was the way \nto go an we then started to develop the idea behind TimeBuddy.\n\nHaving recently read about the Pomodoro Technique we wanted this to be the \ncore idea in TimeBuddy.\n\n## Core Idea\n\nThe idea of TimeBuddy is really two things:\n\n1. A Pomodoro timer\n2. An activity tracker\n\nEach idea will be further described in greater detail by its own.\n \nBut since this project basically needs to do two things it's build as a basis \nplatform with hardware wise a 16x2 LCD screen, two LEDs and a buzzer for output and \nfour buttons (start, stop, back, forward) for input. \nSoftware wise TimeBuddy is just a simple program which initializes the \ninput and output, then creates the different program objects with said \ninput/output and then runs the program objects main method, but this is \nexplained in greater detail in the TimeBuddy README file.\n\n### Pomodoro Timer\n#### Description of the Pomodoro Technique from wikipedia (15/2 - 17)\nThe Pomodoro Technique is a time management method developed by Francesco Cirillo in the late 1980s. The technique uses a timer to break down work into intervals, traditionally 25 minutes in length, separated by short breaks. These intervals are named pomodoros, the plural in English of the Italian word pomodoro (tomato), after the tomato-shaped kitchen timer that Cirillo used as a university student.\n\n##### TL;DR\nThe Pomodoro Technique is:\n\n1. Select a task\n1. Start a 25 minute timer\n2. Work on said task\n3. When the timer rings\n    * Make a mark\n    * Stop working\n    * Start a 5 minute timer\n5. Have a break\n6. When the break timer rings go to step 2\n7. Once you have 4 marks\n    * Have a longer break (30 minutes)\n    * Go to step 2\n\n##### How it helps\nThis technique helps your productivity since it:\n* Forces you to actively decide what task to accomplish\n* Gives you small breaks for reflection \n* Gives you longer breaks, this feels both feels like a reward, but also keeps you\nfrom burning out\n\n### Activity Tracker\nActivity tracker might seem like something out of some creepy sci-fi show \nbut sometimes it's nice to know how much time you spent on certain activities, \nespecially if you're trying to optimize your time. \n\nAnd activity tracker does just that, when starting an Activity Tracker session \nyou will be asked to choose an activity from your list of activities, once the \ntimer is stopped the time spent on the activity will be logged in a database \non the restful API.\n\nThe web UI is then used to display a summary of your activities and time \nspent on each one of them, the web UI is also used to manage your activities \nand pomodoro tasks.\n\nActivity Tracker also bleeds into the Pomodoro timer, and every pomodoro \nsession is logged as well and displayed on the web UI.\n\n\n## How it works\n\n### TimeBuddy consists of 2 parts\n1. A flask project hosting a web UI and restful API \n2. The TimeBuddy program. \n\nFor specific documentation on either of these parts see the README in their \nrespective folders (Coming soon!)\n\n### Broad strokes\nThe TimeBuddy platform can best be explained with the following wannabe UML \ndiagram\n\n![TimeBuddy overview](https://raw.githubusercontent.com/nikolajlauridsen/RaspberryTimebuddy/master/Documentation/Images/UML.png)\nPlease note that arrows above the line signal information flow, and arrows \nabove the line signal how the classes are imported\n\nStarting from above the user interacts with TimeBuddy through both the Web UI \ngenerated by the Restful API, implementing a google calender, and through the \n physical screen, buttons and notifying tools (LEDs and buzzer).\n \nTimeBuddy only communicate with the restful API and google calendar through \nthe TimeBuddy program classes, which in turn communicate with the necessary \nAPIs through abstracted helper classes called EventCreator and ApiHandler. \nThis means that TimeBuddy is just the launcher program which uses the physical \ninputs to let a user choose and run a program class, which in turns makes it \nreally easy to expand TimeBuddy, simple write a new program object and add it \nto the list in the \\_\\_main\\_\\_.py file in [the TimeBuddy folder](https://github.com/nikolajlauridsen/RaspberryTimebuddy/tree/master/TimeBuddy), \nand then of course update the restful api as nececary.\n\n\n# Dependencies\n* Flask\n* requests\n* google-api-python-client\n* RPi.GPIO\n* sqlite3\n* json\n* threading","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikolajlauridsen%2Fraspberrytimebuddy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnikolajlauridsen%2Fraspberrytimebuddy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnikolajlauridsen%2Fraspberrytimebuddy/lists"}