Git Product home page Git Product logo

e-gantt-chart's Introduction

Hello, Iā€™m @zacharylaborde. Iā€™m currently learning computer science via a bachelors degree and electrical engineering through my current job in the Air Force. You can email me at [email protected] and I will try to check my email as often as possible. :)

e-gantt-chart's People

Contributors

zacharylaborde avatar

Watchers

 avatar

e-gantt-chart's Issues

Need filtering

The Gantt chart needs ways to filter by row name and even event types.

Events need drag and drop

To improve the functionality of the gantt chart, there needs to be a drag and drop feature. The user should be able to hover over an event, click and hold to start dragging and release it to drop it somewhere else in the gantt chart.

Events do not load if they end past the last column

Events aren't loading when they extend past the right most column. Instead the events should be cut off like they are whe they extend past the left most column. You can easily see this bug if you reduce the size of the gantt chart to 3-4 columns and have an event that is larget than 3-4 rows extending to the right.

Controller needs labels

Each component on the controller needs a lable to indicate to the user what it does. (The title doesn't need an indicator).

Highly Repetative Code

I have some highly repeatitive classes defined in the project: All Commands, Queries and Presenters are extremely similar. To fix this, it might be best to abstract out a class that describes what each of them do and the implementations can be much smaller. Especially if I create more of these in the future.

Rename LoadFromMemoryCommand

LoadFromMemory doesn't describe the full implications of this command. It would be best to simply name it LoadCommand, which is descriptive and general enough to describe exactly what this command does.

Need 'Error Box'.

The gantt chart needs an error box so that I can display error messages to the user (for instance if someting doesn't load properly).

Needs 'README.md'

We need a README.md file so people can get started right away to get to using the code. This is also going to be dependant on a completed codebase as well.

Implement table to contain events

The gantt chart will be implemented as a table. The table will contain a set of events and also have a date range for bounds that the user must be within. This said, the table itself needs to have its own in-memory state as well.

Row's can be grouped

Rows need to be groupable under different names so that the data can be visualized easily. Experimentation with different interfaces to do this is necessairy.

Timeline text display is messed up

Currently, the timeline displays text that wraps and can look messed up at times. Find a balanced solution to this problem that keeps all of the relevant information on screen while also looking good.

Needs Events

The gantt chart needs to be able to hold events.

Can't edit number of columns loaded

Currently the user cannot edit the number of columns that are loaded. This should be achievable with a simple setting in the Gantt chart controller.

Table needs body.

The body of the table needs to be modifiable to add new nameable rows.

No styling hooks for gantt chart

The gantt chart is starting to become a mess without any styling. I think to progress, I need to start adding some css in order to manage what I am looking at during testing.

Need event editor

The Gantt chart needs to have events in it as well as a means to edit those events as needed. An event editor panel that pops up on the side would be the most effective way to do this.

Need improved row renaming

The row names can be edited, however the update is triggered whenever the row is blurred. This means that even if the row is not updated, it triggers an update which can be a call to the network. This is unnecessairy if the row name has not been updated. I would prefer if the user could select the name to be updated first, followed by an input field appearing. The user can then only submit their updates once the input is different from it's initial state.

Create a zoom-level controller.

The zoom level of the gantt chart should be dynamic. I want four separate zoom levels: (1) day-long segments that are tiny allowing for at least a month of data to be visualized on the screen all at once, (2) day-long segments that are much bigger allowing for the user to see about a week or two of data on the screen at once. The events in this instance are displayed as a list on the day and span the entire day even if they don't in their detail. (3) shift-long segments (day, mids, night) shifts that are 8 hour long segments. These segments should span entire shifts and no more, nor no less. (4) hour-long segments which is as detailed as the chart will need to be. This zoom should work like a counter with an upper and lower bound. The zoom will toggle between enums ("Zoomed Out", "Days", "Shifts", "Hours").

Need sorting

The grant chart needs a means to sort the rows in different ways.

Title needs to be disable-able

The text field needs to be disable-able because some users shouldn't be able to edit it if they don't have permission to.

There are no tests

There are currently no tests for this project. Implement unit and integration testing with Jest.

Need Row components

Row components need to be added to the project. Rows should controll themselves (at least the updating and deleting parts).

Components do not load in-memory data.

Make components load data from the in-memory repository. This will allow me to later load data from the server-side and load that into the main memory of the application.

Possible Solution

To load the data, I will make query commands that each component will induce on construction. These queries will reload data from the in-memory repository and update the presenters.

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.