mzrimsek / track-my-playtime Goto Github PK
View Code? Open in Web Editor NEWA time tracking app for video games.
Home Page: https://trackmyplaytime.com
License: MIT License
A time tracking app for video games.
Home Page: https://trackmyplaytime.com
License: MIT License
As seen in the NavComponent list and the HeaderComponent login button.
These elements have a large "button" area, but the links only activate when the actual text or icons are clicked.
The entire area of the "button" should activate the link.
Feature to list out all games that have entries (organized by platform) with data on total time played, first played on, and last played on
Maybe some other interesting data as well?
Potentially includes an option to rate the game. Given enough ratings it may be possible offer recommendations for games not included in the library?
When you click on a day on the date vs time dashboard graph it should take you to a page that has a history and total time with breakdown of the day by game and platform.
Currently if a user refreshes the page with an active timer they will lose their timer information.
It would look better if all the data was loaded before showing anything to the user. It would represent probably a second or two of a loading screen, but after that everything would be completely responsive.
Could probably just do something like the loading spinner, and then remove the loading spinner from most (maybe all) of the places it's currently being used.
I want to be able to see code coverage reported so I know I'm keeping things good in the project
This is in planning still...
Currently can populate the game field, but not the platform one. Basically am currently unsure if I want this functionality, but I think it could be useful in the future.
Adding or modifying platforms is really tedious and painful right now. Figure out a way to make it not terrible and less error prone.
Likely this means adding an admin panel that only specific users can access based on userId.
There may be instances where I am pulling more data than is necessary. Making an issue for this so I have it to remember it may be something I can do to optimize how much data I'm sending/receiving in the future.
Reference: https://github.com/angular/angularfire2/blob/master/docs/firestore/querying-collections.md
Goal is to gather statistics on how users use the application to assist in future improvements to the overall experience.
There should be a button that says "more info" or "stats" on completed entry that routes to a page with details.
Still in planning stages, but this would be more for comparing time spent playing games this month vs a previous month, or possibly a range of time.
Might also have things like a heatmap of when a user is most often playing games during the week, hopefully utilizing both start time, end time, and day of the week.
Would be cool if we could get exact and consistent game titles, maybe using an API like IGDB.
Currently just shows the current week's data.
This project needs a logo to give it some more character.
Additionally the favicon is still the default Angular icon and should ideally be updated to whatever the logo is.
The landing page needs to explain the site to people so they actually sign up for it and don't just leave the page.
Not sure if this is worth the effort as dealing with timezones would significantly increase complexity in general since the entire app is based around time tracking.
The issue stems around the fact that if you track an entry in one timezone, then change timezones and view the data and the times will appear to be off even though they are correct for the current timezone.
I'm not sure if it's worth it to keep entries timezone specific so the data is displayed consistently at all times (because dealing with timezones is a PITA because of how many contingencies there are).
This is untested, but what happens if you start in one timezone and stop in another?
Will likely just enforce that all entries will be made in a user specified timezone, instead of making it a piece of data on a history entry (will just a user setting taken into account when displaying data).
Will likely need to use UTC time if not already. Something to look into.
History entries should have a button that will set start the timer with the game and platform from that history entry.
I don't want it to go overboard, but maybe an ad or two, hopefully to cover maintenance.
If previously I have been playing Destiny 2 on Battle.net, when I start typing "Destiny 2" in the timer game input, a list of candidate matches should popup that allow you to select and autofill both timer game and timer platform.
It would be cool to see what platforms you have a game for since some are on multiple platforms.
It also might be cool to have a modal that pops up when you click on a row that breaks down playtime and whatnot by platform and then maybe a line graph of activity kinda like how github does with repositories on your profile.
Having a huge list of games is cool, but scrolling is tedious.
For slices of state that are shared between features, they should be in a place that is...shared. Probably the shared module.
Opening a separate issue because it's a large enough task to warrant it's own branch and I've already done too much restructuring in the branches I'm working on currently.
Would be more informative to have some message instead of just blank graphs.
I have been slacking on writing tests for any of the code in this project...as in there are literally no tests in the project (at the time of writing this issue).
Once existing code is all tested, the goal will be to add tests in tandem with any other new code.
Should display rating in library and make it a sortable column as well
When you click on a platfrom in the dashboard (time vs platform graph) or library it should take you to a page that gives details for a platform with history, total time played (with breakdown by game), and maybe a small graph that shows activity over the past year.
Currently when an error is thrown inside of one of the services, errors are logged to the console. Ideally these errors should be sent to the error state, similar to how errors are currently handled inside of the effects.
I'm undecided on whether this is more desirable than just stopping and making another entry, but I'll put an issue here so I think about it some more.
This would be a nice feature in the event that a user navigates back to the home page while logged in.
Users should be able to sign up/login with a provided email and password.
Users should be able to sign up/login with their Facebook account.
It will make it easier to see what your most played game is at a glance if they are in order from biggest to smallest
This feature is purely for the initial release. Charts will be limited to the last 7 days of data to start.
When you click on a game in the dashboard (time vs game graph) or library it should take you to a page that gives details for a game with history, total time played (with breakdown by platform), and maybe a small graph that shows activity over the past year.
Likely this would mean combining a list of user platforms with the existing platforms list.
Users should be able to manage the platforms from their profile page.
Having data validation to make sure there's no junk or extra data being sent to the database seems like a good idea.
It's sequential data so I think a line graph will make more sense.
It would be cool if the elapsed time showed up on the title of the window so users could have different tabs open, but also be able to see the time at a glance.
I believe this would make the most sense to only happen when the the user is on the tracker route.
Need to add a suite of end to end tests to verify functionality...this may need to wait until after #14 is finished to make it easier to programmatically log into the site.
Only the last X amount of entries should be loaded initially. Button at bottom of list should be added to load the next X amount of entries. When all entries are loaded the button should not be displayed.
Not sure if this is an undesired behavior. Should title and/or platform be required in order to record?
I know parts of the website as it is right now are not styled the best. I believe it is passable for the most part, but likely could better.
I would like to fix up what I have first, potentially with site wide mobile styles, so that future additions will have a reference for how to make more maintainable styles going forward.
Hi, can I contribute by designing a logo for this project?
This is a potential feature addition for the dashboard. This will be revisited once the reports feature is added.
I have a lot of duplicate test setup code that I have copy and pasted many times to different files. I need a centralized test utility file that generates test objects so it's not painful to update things.
I will need to make sure all of my dependencies will work with Angular 6...I am holding off on this for a just a tad longer.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.