Skip to content

lanterno/beats

Repository files navigation

Beats

Because life is a time-series of heart beats

measures the whole time spent on every project you have and helps you manage time on your projects.

Goal: To become your time-aware assistant. To record even your heart beats.


RoadMap:

  • "Create project" endpoint

  • Start timer on project

  • End timer on project

  • Check total time for day endpoint

  • Add validation for multiple active timers

  • Use environment variables for DB DNS

  • Rotate secrets

  • Provide custom starting time

  • Provide custom stopping time

  • Testing with pytest

  • Add Google build CI

  • Make CI push images to GCR

  • Remove deprecated app

  • Deploy on GCC

  • Migrate old data

  • Web App in VueJS

  • Deploy to Cloud Run

  • Finish CD using GCR, Cloud Run, and Cloud Build

  • Provide meaningful errors

  • Smart assistant (alexa or google for a start)

  • Enhance API by providing a timer-specific API.

     It shouldn't be directly interfacting The timelogs
    
  • Move GCC to Eurozone to lower latency to ~ 50 ms

  • Browser plugin

  • Set up different databases for different environments

  • Version the repo

  • Think about Canary Releases

  • DataLake and backup?

  • Dashboard

  • Add console client written in bash or GoLang

  • Desktop app like Upwork timer (for macos)

  • MobileApp (sheetu)

database

MongoDB hosted in the cloud. We can add it to compose later to make it more convenient to users

Dependencies

To install dependencies, use make ops to start a shell with pipenv files in sync. After that, run the pipenv commands you need. for example, pipenv install pytest --dev

Deployment

This app uses GCP for deployment. Git push does everything automatically.

  1. Google build run the CI automatically.
  2. If all is well, an image is built
  3. Google Run is redeployed using the new image