Code Monkey home page Code Monkey logo

rainbow-tracker's Introduction

Rainbow tracker

Setup environment

Environment variables

VITE_APP_ENV='develop' | 'production'

About the app

Rainbow tracker is a personal time tracker web application. It facilitates tracking your life in 15-minute intervals using user-defined categories and activities. You can also write notes next to the categories/activities to further elaborate on what you were doing at that point. With convenient dragging functionality for categories/activities and notes, logging your time becomes super easy. Furthermore, there is an evolving analytics page to view the various statistics of how you have spent your time. And of course, you can edit the categories and activities to fit what exactly you spend time on.

Explore the application

Currently it is possible to explore the application using the test account. So head over to rainbow.emils.xyz and use the credentials:

The test account already has some data to play around with. The data ir reset every day so any edits you have made will be cleared.

Related repositories

See other rainbow tracker project repositories:

Feature showcase

Main dashboard

Main dashboard is where all the logging of time happens. Each column represents a day and each row represents a 15-minute interval. As seen in the video, dragging both categories and notes makes it really convenient and quick to log what you have done during the day.

Dashboard.mp4

Analytics

In analytics you can view your data over time in various different formats. As seen in the video, currently weekly and daily analytics are available. This means that data is aggregated either per week or per each week day. Many new graphs are to be implemented for even more extensive analytics possibilities.

Analytics.mp4

Settings

Settings page shows the user's categories and activities. Currently only category information can be edited but more functionality such as new activity creation is to be added.

Setting.mp4

rainbow-tracker's People

Contributors

dependabot[bot] avatar emilsbee avatar fifthrooter avatar

Stargazers

 avatar

Watchers

 avatar

rainbow-tracker's Issues

Good idea to separate styling for note/stack text?

So currently in the latest commit in the fixTextAlignmentInNotes branch, I've solved all note formatting issues. I managed to fix all formatting issues by placing the note text inside a paragraph element and giving it a ".note-text" styling, which would be applied to the notes both when a note-container is displayed, as well as stack-container. However, there was one issue still left formatting-wise when trying to apply the same class to both note & stack:
image

To solve that, I made a custom class for the stack notes called ".stack-text", separate from ".note-text":

.stack-text {
  text-overflow: ellipsis;
  overflow: hidden;
  display: -webkit-box !important;
  -webkit-box-orient: vertical;
}

In the NoteItem.tsx this is how additional dynamic styling is applied to make sure that multiline ellipsis is applied to the stack notes:

<p className="stack-text" style={{ WebkitLineClamp: max - min }}>
        {note.note}
</p>

image

This is the result.

Adding possibility to create new activities (and retiring old ones)?

Right now it's not possible to create a new activity, and the standard approach to "creating" a new one is to just rename a rarely used one and start using it as new.

The problem with this approach is that there's no distinguishing between projects/jobs/etc, as one keeps renaming the activity to different things. And after a few years it would be impossible to trace back a specific time period during which an activity was used for "Project A", and then afterwards for "Project B" etc.

Looking at an overview over the years, it would be cool to see when and for how long I was working on "Project A", then stopped and started "Project B", and see how my productivity and existence patterns changed as a result of changing projects/jobs.

In addition, in the Settings page under activity settings, you could display a list of "Active activities" and then have a button of "Archived activities" to show those as well? Not sure whether that would be needed, but just brainstorming here.

I know you've thought about this, but was just curious whether it's possible to implement in the current code, and whether there's a plan down the road to implement this. (For me it's getting quite pressing as I'm starting new projects and a new job :D)

Close note editing modal when clicked away

Currently it only closes when either Enter is pressed during editing of the note text, or when Esc button is pressed. Would be nice to quickly close it by clicking anywhere in the background of the modal.

All time analytics

Create an analaytics section for counting the TOTAL amount of time spent on categories and activities from all of the years registered in the app. Not a lot of practical use, but still would be incredibly fun to see the totals :D

Analytics->Weekly section->Activities: unnamed activities are colored white and named "Empty"

Firstly, could the color of the unnamed activity be changed to the default color of the category, instead of white? I don't think it's necessary to have it be white, as it messes with the overall visual.

Second, could we perhaps agree with changing the name from "Empty" to something else, like "other"? Or perhaps name it after the category name, for example, "sleep" if the category name is "sleep", or "leisure" if the category name is "leisure"? I'd personally opt for the "other" name tho. Wdyt?

image

image

Shortcut to delete note text without opening it.

In a situation such as below, it would be good to have a shortcut that includes pressing some keyboard key and then clicking mouse 1 over the note for which to delete text. Should work both on single notes as well as stack notes. Shortcut idea: cmd + mouse 1.

Screenshot from 2021-09-16 15-06-13

Show small box w/ some analytics on hover over an element (name of day)?

What do you think about adding a little bit of analytics in the dashboard by displaying a small box with how many h each category has + percentage from the day when hover over an element, for example, name of the day?

That way you can quickly check what's your daily distribution without having to go into the Analytics page. I was just trying to test planning a day for myself by filling the whole day and thought it would be useful to see how many hours of pure work I've already planned for myself, but it felt a bit too invconvenient to go to the Analytics page to only check this one thing very briefly.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.