Code Monkey home page Code Monkey logo

easy-project-management-tool's Introduction

Easy Project Management Tool

Easy project management tool is a desktop application made with Java and Javafx which enables you to manage your personal/office projects. You can add serveral projects & project’s tasks with milestone which will help you to complete the project successfully.

How to build this application in your local machine

This project is made using Intellij IDEA. So, I would recommand you to build this project using Intellij IDEA.

  1. Install Intellij IDEA Community Edition from here if you haven't installed it already.
  2. Fork & clone/download the source code of this repository in your PC.
  3. Open the project with Intellij IDEA Community Edition and install the required JDK suggested by the IDE. Alternatively, you can download the JDK 8 from here and use it to build and run the project.
  4. Install MySQL in your PC. To do that you can download & install MAMP. You can access the MySQL database in the web. The default address is http://localhost/phpMyAdmin. However, it may vary depending on your configuration.
  5. Import this sql dump in the MySQL database.
  6. Config the database with application. You may need to edit Connnect.java with your database username and password.
  7. To login as Admin, use username - admin and password - admin.

How to Contribute

Follow the above instruction to build the application in your local machine. Feel free to fix any unassigned issues from here. If you are a first time contributor, I would recommand you to pick one of these issues and work on it to get familiar with the codebase. Feel free to submit pull request when you make a patch for any issue.

How to get help

It's a prerequisite that you know Java to work on this project. However, if you face any issue with building the application in your local machine or while making a patch for any issue, feel free to ping me at [email protected]

easy-project-management-tool's People

Contributors

alecsisduarte avatar atiqueahmedziad avatar notfahim avatar vignesh-durairaj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

easy-project-management-tool's Issues

Make Employees list for Admin

Related to issue #16

issue

Admin should able to see all his employees that he added with Employee adding form in issue #16 . We should be aiming to create a separate employee table in database.

  • Use list view in Javafx to create the ui.
  • Generate the list with all employees data from database.

One Date doesn't display when the range of dates are above 50 in Gantt Chart

Step to Reproduce:

  1. Login into the Application.
  2. Create a new project and sure the difference between start date and end date of the project is more than 50 days.
  3. Click on "show gantt chart" button to see the Gantt Chart.

Actual issue

A date is missing. See screenshot below.

Expected solution

No date should be missed.
For making the Gantt chart we have used a built-in java class called XYChart and through X-Axis we have put the Date Axis from DateAxis API. We may need to work with this Date Axis API file to fix this bug.

Screenshot

screenshot 2018-10-29 at 12 34 47 pm

Redesign Project Details page for Employees

Employee should not be able to see/ add the following in project details page:

  • Employee can not add new task to project. Hence remove Add Task button from Employee.
  • Employee can not delete existing tasks. Hence remove Delete Task button from Employee.
  • Employee can not edit progress in tasks table. Hence disable that functionality for employee.

Allow admin to add employees

Related to #15

Issue

We should be allowing admin to his/her add employees. The form to add employee should contain these information -

  • First name
  • Last name
  • Employee id
  • Employee username
  • Employee password
  • Contact number
  • Email
  • Gender
  • Designation
    etc...

Employee username and Employee password should be used for employee login authentication.

Admin should be able to select employees while assigning tasks

Issue

Currently we are manually writing name of the employee whom we want to assign a task in a project.
Since, we will be making a employee panel by adding every employee, we want to have a choose box from where we will choose the employee name instead of writing the name manually. Employee names will be fetched from database.

Show only 6 digit Hexa color code in Color column of Task table

Step to Reproduce

  1. Log into the application.
  2. Add a new project with multiple tasks. Load the tasks after you added a few tasks.
  3. You will able to see the color column if filled with 10 digital hexa code (Ex: 0xffb300ff )

Solution:

  1. We want to show more readable hexa code. Thus, we want to show only 6 digit of the color code.
    Example: Instead of 0xffb300ff, we want to show #ffb300

Allow every user to logout

issue

Currently, we have only login functionality. We want to have logout options in both employee and admin panel.

Make a list of employee profile for Admin

Issue

Both in admin panel and employee panel, we need this. An admin can see employee's profile, where there will be a list of projects and tasks that the employee is assigned to. NOTE: An Admin can check all employee's profile
In employee panel, an employee can only check the projects and tasks that he/she had been assigned to from employee panel.

Make a new welcome page for employee

We want to make a new welcome page for employees where an employee can find the summary of his/her assigned projects. The new welcome page will act like a Home page from where an employee can easily navigate to other pages.

Suggestions:

  • Add new class & fxml with new package.
  • Use this name package name: IntroPageEmployee to match existing wording pattern where Admin Intro is named IntroPageAdmin

Sketch

70361372_446319472642502_2490392295019380736_n

Show Gantt Chart keeping Project Details page alive

Step to reproduce

  1. Log into the application.
  2. Go to existing project's details view or create a new project with multiple tasks.
  3. Then click on "Show Gantt Chart" button. You will find it closes the project details view and display only Gantt Chart.

Solution

We want to show both Project Details page along with Gantt Chart when someone clicks "Show Gantt Chart" button.

you will find the code here

Admin should able to add client

There should be a table with client with following columns:

  • Client id
  • Name
  • Contact Person
  • phone
  • address

Admin should able to choose client on every project.

Automatically Generated ID for every project

Step to Reproduce:

  1. Login the application.
  2. Click on "Add new project" button from top.

Current issue

Currently, we are taking project ID as input from user and save it to database as stated here in ProjectDetailController.java. Also, we are checking if user giving input the same ID twice from here so that we don't get duplicate project ID.

Expected solution

We want to generate the project ID automatically and it should increment by 1 from previous project ID. To be precise:

  1. We want start from 0 as our first Project ID and increment it by 1 in the next project ID and so on.
  2. Make the project ID field disable so that User can not edit Project ID field.

Screenshot

screenshot 2018-10-28 at 11 51 47 pm

Redesign "All projects" page

After a successful login in the application, it takes us to "All projects" page where we can see the existing projects.
Currently, if we add more than 7-8 projects, the layout gets out of the computer's visible display area, hence we can't access some project's info. In short, we can say, it's breaking the layout.
In current design, we are using Accordion to hold each project and inside the Accordion, we are using Titledpane to hold the project title VBox to hold the project's info.

We need to come up with a new design where we can place 500+ projects without layout breaking.

Allow project deletion

Issue

Currently, we are able to create project and add multiple tasks under each projects. But we have no option to delete projects. We want to have a Delete project button in project summary view, which will help to delete the project.
NOTE : Each project may consist of multiple tasks. If a entire project is deleted, make sure the tasks under that projects also get deleted from database.

Screenshot of project summary ui

Screenshot 2019-07-19 at 12 31 09 PM

Make End Date point the start date in Calender

Issue

Whenever we select the calendar (to choose start/end date of a project / task), it points to that current date in the calendar.

Need to do

If we select a start date in the calendar, then if we select calendar to choose an end date, it should point the start date instead of current date.

Add client & project manager field in Project details page

We want to make two more fields in project_info table i.e. client & project manager.
In project summary & project details page we want to display these fields (If possible).

  • There should be a dropdown of Clients from where admin can choose one.
  • There should be a dropdown of employees whose designation is manager. Admin will choose one.

Make a new welcome page for Admin

We want to make a new welcome page for admin where admin can find the summary for projects, employee and clients. The new welcome page will act like a Home page from which admin can easily navigate to other page.

sketch

70906101_457232438214463_2049338783383420928_n

Use user's inputted color in Gantt Chart

Step to Reproduce:

We are currently taking each task's representation color as input from user here. The hexa color code are being stored in the database as String. We are also showing that weird piece of code (something like 0x7b1fa2ff) in our table at Column called Color in ProjectDetailController.java

Current issue

Although we are taking color input from user and stored in the database. We are suppose to use these colors to represent each task of a project in our gantt chart. Currently, we are using some default color from here.

Expect to fix

  1. We want to use that user's chosen color to represent each task on our gantt chart.
  2. In ProjectDetailController page, we want to get rid of the weird code to display on our table. Instead we can show the name of the color code as documented here or just put the proper 6 digit hexa color code instead of that awkward 8 digit code (0x7b1fa2ff).

Project End Date should be greater than Start Date

Step to Reproduce:

  1. Login into the Application.
  2. Click on Add new Project button.
    You will get the option to choose project's start date and end date. If a user mistakenly put the end date to any date earlier than the start date, that successfully saves the date in the database. But this is not what we want.

Expected solution

If the user sets the end date to an earlier date than start date, it should not accept the End date and show an error message to user e.g.: End date must be equal or greater than start Date.

Screenshot

screenshot 2018-10-29 at 12 08 08 pm

Add multiple user level [Admin and Employee]

Issue

Currently we have only one user level authentication. We want to make 2 level user authentication i.e. Admin and Employee.

  • Two user level authentication [admin & employee]

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.