kylelambert101 / mc-manager Goto Github PK
View Code? Open in Web Editor NEWElectron app for managing a music collection database in CSV format
License: MIT License
Electron app for managing a music collection database in CSV format
License: MIT License
The app looks bad when chromium uses its dark theme (black bars around the light-colored app content). While alternative themes would be useful at some point in the future, they're not needed now.
Force electron to use the light them only when building and loading this application.
Headers stay aligned with data columns during horizontal scrolling no mater how much vertical scroll is done
Headers stay aligned with data columns during horizontal scroll if the data is not vertically scrolled. If the data is scrolled down any amount, it can be scrolled horizontally without maintaining header alignment.
Header alignment syncing seems to be related to the TooltipHost code in CSVDataList - the fix for this might be related to that.
Load more than a page's worth of data and scroll down any amount, then try scrolling horizontally.
Allow the user to toggle the boolean value of the include
field with a checkbox in each row.
include
column to display checkbox instead of true/falseClicking an Include checkbox immediately changes the visual state of the box
Include checkboxes don't change visual state for a few seconds after they are clicked.
The toggle redux reducer seems to run pretty quickly, so I'm guessing it's a render issue. Unfortunately, the devtools aren't loading properly in the electron app so it's tough to trace render issues.
Load a CSV file and click the Include checkbox for one or more rows.
Title bar and command bar should remain locked in position when data is scrolled horizontally
Loading data and scrolling horizontally (without scrolling vertically first) causes the title bar and command bar to scroll with the data, disappearing off the left side of the screen. Scrolling vertically first locks the bars in place and demonstrates expected behavior
Since the Sticky behaves correctly once vertical scrolling occurs, it seems like it might be related to the state of the ScrollablePane - that could be a good place to start.
Implement a way for the user to sort the data list
It would be neat if columns could be automatically shown/hidden for the data list view.
Implement a way for users to add new csv rows to the dataset and persist it to the source file
Update the application to be compatible with the new CSV file format:
ID
column and auto-generate IDs when the file is loadedInclude
column to be named Active
Add a button to reset the state of the data grid to the initial state loaded from the file (or saved to the file)
Back-end
Front-end
As the only column to be left of the include
checkboxes, ID would look best if it was formatted differently from the rest of the data. It might even be good to format it such that it fades into the background. I'm thinking some combination of the following might be good:
It would be really cool to have a progress bar as the songs are being loaded into redux.
There is currently a column of 'undefined' values at the end of the DetailsList. Investigate and fix it.
Make some basic improvements to how the song data looks in the main list.
IDs are only used behind the scenes to identify particular rows, so they don't need to be visible to the user, nor do they need to be shifted when new songs are added. Make the following changes to how IDs are processed and stored:
Give the user the option to automatically apply sorting to the list when new songs are added
Up until now, the application has been running on top of electron as a desktop app. It may be useful to keep this functionality, but I'd like to see this running as a deployed in-browser app managed in GitHub Pages.
ID Column remains small and another column (possibly Duration) expands to fill the horizontal space
ID Column expands to fill horizontal space in the list, making it huge before data is loaded
DetailsList prop layoutMode can be set to DetailsListMode.fixedColumns to fix this issue, but that causes another issue where the columns are not resized when a file is loaded.
Options:
Open the application with a window width large enough to show all columns plus extra space.
Add a feature so that you can change the active
value of multiple rows by Shift-Clicking the rows and then clicking the Active
toggle in one of the selected rows. It would be confusing for the click to toggle each row individually (invert the set), so the behavior should be as follows:
active
value, toggle the value for all of themactive
values,active = true
active = false
Export changes to the music dataset to the original CSV File
Project needs a README.md file
Implement the following features as well as a View Options panel so the user can toggle them on and off
View Options:
Panel:
Implement an edit window for an individual song record
Tests that run for each project check-in are failing. Investigate and figure out what's going wrong. I'm guessing it's a holdover from the original ERB template that needs to be updated for this individual project.
Project needs unit tests for existing functionality. Add tests for the following:
Rename master to main to align with current principles
Redux and React devtools extensions aren't working in electron dev mode. There may be an update down the road for electron-devtools-installer that can fix this issue.
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.