GithubHelp home page GithubHelp logo

andreimasato / tasktime-frontend Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 675 KB

Frontend for TaskTime application

License: BSD 3-Clause "New" or "Revised" License

HTML 1.73% CSS 0.61% JavaScript 97.22% Dockerfile 0.43%

tasktime-frontend's Introduction

TASKTIME - FRONTEND

TaskTime is an application for you to register your execution times for your projects tasks.

This repository must be used with its backend counterpart, TASKTIME - BACKEND.

Application Local Execution

Installing Node dependencies

Install node dependencies by running the following command

npm install

Running a Local Server

To run a local server, run the following command

npm start

About the Frontend (WIP)

This fronted is built based on Create React App. The UI base components were used from Material UI. For data fetching and state management it was used axios and React Redux (with addition of some Redux-React plugins).

tasktime-frontend's People

Contributors

andreimasato avatar

Watchers

 avatar

tasktime-frontend's Issues

Sets up charts

Sets up charts with react-apexcharts
The dashboards will feature the following charts and information

  • Top 5 projects with higher duration and top 5 tasks with higher duration (2 tabs)
  • Open tasks (tasks that contain any cycle with dt_start == null) -> carrousel -> will redirect to task detail page
  • Latest (updated) activities (Name, project, current duration) -> fetches by cycle modified_on field
  • Histogram by period

React material UI carousel

Create projects listing page

Creates the project list page. It must contains the following elements

  • Projects listing -> List by "cards" like components (Project name, total parsed execution time)
  • Disposition -> Grid with 3 in each row
  • Input for filtering by name
  • Pagination -> max: 9 per page
  • Clicking on a project will redirect to its detailed page
  • Button to add a new project
  • Modal will be triggered containing a form to fill in the necessary data
  • Form for registration. Fields: name (required - varchar), description (optional - text). Must have a checking to detect if it is a new registration or if it is an entry edit
  • Implements deleting call function
  • delete button -> alert dialog -> on confirmation -> delete entry

Base tasks

  • Create base page file
  • Create reducer

Data fetching refactor

Refactor data fetching in a way that the reducers callback for the tasks and cycles work properly. Currently there is no way to use addOne, upsertOne, removeOne because the listing is being done over the objects related to the projects objects array

For this, on the backend side, the responses must bring the related object public_id
For example:

  • For the tasks, each task must return the project public id
  • For the cycles, each cycle must return the task public id

Layout HOC

Creates a base Layout High Order Component that can be used as wrapper for new pages

It should features a top navbar that it will contains the application title, a link to the dashboards page and a link to the projects list.

It should also features a footer that will only have the copyright

Create project details page

Create the project detail page.
It must feature the following elements

  • Form for editing project related information (name, description) -> detects if is an editing case
  • Tasks list (simple list, containing name and total parsed execution time)
  • Button to add a new task
  • Modal that will be opened containing the form for registration
  • Button to delete a task (prompts a confirmation alert)
  • Pagination for task list (max: 10 per page)
  • Readapts url schema -> must contain project public id ("/project/:projectId/tasks/", "/project/:projectId/task/:taskId", etc)

Base tasks

  • Create base page component
  • Sets up URL with a parameter (public_id)

Create task detail page

Create task detail page

It will contain the following element

  • Cycle list
  • Button to add a cycle
  • When clicking on add button, set selected cycle to null
  • A form will appear upon clicking
  • Way to pass a null datetime
  • Form to edit task basic information -> detect if it is an editing case
  • List with overflow hidden and a specific max height
  • Improve datetimepicker styling
  • Improve list styling
  • Improve total duration styling
  • Send as UTC to backend (all data must be saved in UTC tz)

Base tasks

  • Create base page component
  • Set up URL with parameters (projectId, taskId)
  • Create reducer for cycles

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.