Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE REQUEST]: Breakdown of main tasks into micro tasks #16

Open
29 of 44 tasks
dave-ok opened this issue Jun 9, 2020 · 46 comments
Open
29 of 44 tasks

[FEATURE REQUEST]: Breakdown of main tasks into micro tasks #16

dave-ok opened this issue Jun 9, 2020 · 46 comments
Labels
beginner An understanding of tech required enhancement New feature or request javascript node

Comments

@dave-ok
Copy link
Member

dave-ok commented Jun 9, 2020

Is your feature request related to a problem? Please describe.

This is a ticket breaking down available tasks into smaller assignable tasks. Please indicate interest in any task you think you can handle. This is not an exhaustive list and as such suggestions and new ideas are welcome.

Any sub-task that has an issue created and assigned will be indicated here with issue number and assignee. More than one person may be assigned to a task. If there aren't enough tasks on ground. The first valid PR that satisfactorily solves an issue will be accepted and merged.

For coding tasks always lint your code and ensure existing tests and new tests are passing otherwise your PR will fail the tests run on CI and your code will not be merged. To Lint your code simply run npm run lint or npm run lint:fix to fix auto-fixable errors.

DB design:

We are keeping the DB design simple. with a few tables. Please remember suggestions are welcome this is not exhaustive. Use reasonable default values for relevant fields. Note: user_id is gotten from decoding auth token

Table: Employees
Fields: employee_id: bigint, first_name varchar, last_name varchar, phone_no varchar, email varchar, hire_date date department_id bigint, address varchar, user_id bigint

Table: Departments
Fields: department_id bigint, department_name varchar, manager_id bigint, user_id bigint

DB Design Tasks:

API Endpoints

The API endpoints will need validation, tests and documentation aside from implementation

Validation

Implementation

  • req = required; otherwise = optional
  • response format =>{status, data}

Employees endpoint

  • 1. Endpoint for creating a new employee POST /employees.

  • body - firstName(req), lastName(req), phoneNo(req), email(req), departmentId(req), hireDate(req), address, userId(req)

  • params - none

  • response - [201] - {status: success, data: employeeId}, [400] - {status: error, data: errorMessage}

  • 2. Endpoint for updating employee PUT /employees/:employeeId.

  • body - firstName, lastName, phoneNo, email, departmentId, hireDate, address

  • params - employeeId (req)

  • response - [200] - {status: success, data: employeeDetail}, [400] - {status: error, data: errorMessage}

  • 3. Endpoint for deleting employee DELETE /employees/:employeeId.

  • body - none

  • params - employeeId (req)

  • response - [204] - {status: success, data: successMsg}, [400] - {status: error, data: errorMessage}

  • 4. Endpoint for getting an employee GET /employees/:employeeId.

  • body - none

  • params - employeeId (req)

  • response - [200] - {status: success, data: employeeDetail}, [400] - {status: error, data: errorMessage}

  • 5. Endpoint for getting all employees GET /employees.

  • body - none

  • params - employeeId (req)

  • response - [200] - {status: success, data: array of employeeDetail}, [400] - {status: error, data: errorMessage}

Departments Endpoint

  • 1. Endpoint for creating a new department POST /departments.

  • body - departmentName(req), managerId

  • params - none

  • response - [201] - {status: success, data: departmentId}, [400] - {status: error, data: errorMessage}

  • 2. Endpoint for updating departmentPUT /departments/:departmentId.

  • body - departmentName, managerId`

  • params - departmentId (req)

  • response - [200] - {status: success, data: departmentDetail}, [400] - {status: error, data: errorMessage}

  • 3. Endpoint for deleting department DELETE /departments/:department.

  • body - none

  • params - departmentId (req)

  • response - [204] - {status: success, data: successMsg}, [400] - {status: error, data: errorMessage}

  • 4. Endpoint for getting an department GET /departments/:departmentId.

  • body - none

  • params - employeeId (req)

  • response - [200] - {status: success, data: departmentDetail}, [400] - {status: error, data: errorMessage}

  • 5. Endpoint for getting all departments GET /departments.

  • body - none

  • params - departmentId (req)

  • response - [200] - {status: success, data: array of departmentDetail}, [400] - {status: error, data: errorMessage}

Tests (in Jest)

  • 1. Write unit test for validation middleware

  • 2. Write tests for Employees endpoint 1

  • 3. Write tests for Employees endpoint 2

  • 4. Write tests for Employees endpoint 3

  • 5. Write tests for Employees endpoint 4

  • 6. Write tests for Employees endpoint 5

  • 7. Write tests for Departments endpoint 1

  • 8. Write tests for Departments endpoint 2

  • 9. Write tests for Departments endpoint 3

  • 10. Write tests for Departments endpoint 4

  • 11. Write tests for Departments endpoint 5

Swagger API Docs

Please store all .yaml files for each resource in a separately in the jsDocs folder
Swagger JsDoc
Organizing you swagger .yaml files

Documentation

Update README.md in collaboration with docs team. Ensure all relevant details are in README including:

=======================================================================================================================================================================================

Above tasks will each be picked by a team member. Reply underneath this post with section and sub-task number (the checkbox number). Please tag me (@dave-ok) so I will receive a notification. Then create an issue using the feature request template for the task you intend to work on. When you are done, Indicate your name, sub-task chosen and link to issue you generated here (e.g just #16 is fine). If you have not yet gotten a response just reach out to the sub-group leads for nodeJS so that I can edit the task above indicating you have been assigned and the issue number you created.
If you comment indicating interest in a task. Create the issue right away. If after 20 mins you still haven't created an issue, the task becomes free game for anyone else who wants it.
After the task has been assigned to you, finish it promptly and move to another. When you're done signify and also update your comment where you initially added issue number to include your PR number. Don't linger on a task it may be reassigned. You snooze you lose ;)

Note
Please note that tasks are created in smaller chunks to allow everyone participate. Working a small task doesn't mean you are not competent. It just means you are a great team player

Please update your comments instead of adding another to reduce clutter. E.g to pick a task your comment could look like (include your slack username to make it easy to reach you)

after you have created an issue

after you have completed task and created a PR

@dave-ok dave-ok added the enhancement New feature or request label Jun 9, 2020
@dave-ok dave-ok changed the title [FEATURE REQUEST]: [FEATURE REQUEST]: Breakdown of main tasks into micro tasks Jun 9, 2020
@piouson piouson added beginner An understanding of tech required competent Have some projects on tech required feature A new feature javascript node novice No technical requirement, open to all and removed competent Have some projects on tech required feature A new feature novice No technical requirement, open to all labels Jun 10, 2020
@ekpono
Copy link
Contributor

ekpono commented Jun 10, 2020

I will work on the following

  • DB design

and

  • Validation

@dave-ok
Copy link
Member Author

dave-ok commented Jun 10, 2020

@ekpono Please pick one task and state the number. You can pick another when you are done read the updated instructions and update your comment

@ekpono
Copy link
Contributor

ekpono commented Jun 10, 2020

Thanks for the correction @dave-ok I will go with DB design. Pardon me, am not seeing number tag on the task

@dave-ok
Copy link
Member Author

dave-ok commented Jun 10, 2020

@ekpono They are numbered 1, 2 and 3 above with checkboxes

@ekpono
Copy link
Contributor

ekpono commented Jun 10, 2020

DB Design Tasks: 1, 2 and 3 #17

The individual task isn't numbered but sub tasks

@dave-ok
Copy link
Member Author

dave-ok commented Jun 10, 2020

@ekpono Ok I will make changes. I meant sub-tasks. Thanks

@ekpono
Copy link
Contributor

ekpono commented Jun 10, 2020

Ok. @dave-ok . Can we have a group chat on Slack for ease of communication?

@simply-alliv
Copy link
Contributor

simply-alliv commented Jun 10, 2020

@dave-ok Swagger API Docs Task 1 issue #18 solved with #30

@courage173
Copy link
Contributor

courage173 commented Jun 10, 2020

I want to work on validation task 1 and 2 issue #20 solved by #28

@jan-far
Copy link

jan-far commented Jun 10, 2020

@dave-ok i'll will be working on the Employee Endpoint. 1-5

@dave-ok
Copy link
Member Author

dave-ok commented Jun 10, 2020

@jan-far One sub-task at a time

@jan-far
Copy link

jan-far commented Jun 10, 2020

oh okay. got it.

@dave-ok
Copy link
Member Author

dave-ok commented Jun 10, 2020

Please note that tasks are created in smaller chunks to allow everyone participate. Working a small task doesn't mean you are not competent. It just means you are a great team player

@piouson
Copy link
Contributor

piouson commented Jun 10, 2020

@dave-ok Tests Task 2

@ekpono
Copy link
Contributor

ekpono commented Jun 10, 2020

@dave-ok DB design: Task 2 issue #26 solved with #25

@ekpono
Copy link
Contributor

ekpono commented Jun 10, 2020

@dave-ok DB design: Task 3 issue #27 solved with #24

@pelpuo
Copy link
Contributor

pelpuo commented Jun 10, 2020

@dave-ok Employees endpoint 1 issue #39 solved with #36

@jan-far
Copy link

jan-far commented Jun 10, 2020

@dave-ok Employee endpoint 5 issue #3

@courage173
Copy link
Contributor

courage173 commented Jun 10, 2020

@dave-ok I want to work on validation task 3 issue #32. solved with pull request #34

@courage173
Copy link
Contributor

courage173 commented Jun 10, 2020

i want to continue working on validation task 4 issue #35 . i have solved it with PR #38

@simply-alliv
Copy link
Contributor

simply-alliv commented Jun 10, 2020

@dave-ok Swagger API Docs Task 2 issue #40 solved with #45

@dave-ok
Copy link
Member Author

dave-ok commented Jun 10, 2020

@jan-far Please create an issue yourself for the specific task you chose.
@Kamikaze49 please create a separate issue #3 has been closed for being vague, create your own issue

@josefophe
Copy link

josefophe commented Jun 11, 2020

@dave-ok DB Design Validation task 5

@simply-alliv
Copy link
Contributor

simply-alliv commented Jun 11, 2020

@dave-ok Swagger API Docs Task 3 issue #46 solved with #47

@simply-alliv
Copy link
Contributor

simply-alliv commented Jun 11, 2020

@dave-ok Swagger API Docs Task 4 issue #48 solved with #49

@simply-alliv
Copy link
Contributor

simply-alliv commented Jun 11, 2020

@dave-ok Swagger API Docs Task 5 issue #50 solved with #51

@simply-alliv
Copy link
Contributor

simply-alliv commented Jun 11, 2020

@dave-ok Swagger API Docs Task 6 issue #52 solved with #54

@simply-alliv
Copy link
Contributor

simply-alliv commented Jun 11, 2020

@dave-ok Swagger API Docs Task 7 issue #55 solved with #56

@simply-alliv
Copy link
Contributor

simply-alliv commented Jun 11, 2020

@dave-ok Swagger API Docs Task 8 issue #57 solved with #58

@simply-alliv
Copy link
Contributor

simply-alliv commented Jun 11, 2020

@dave-ok Swagger API Docs Task 9 issue #59 solved with #60

@simply-alliv
Copy link
Contributor

simply-alliv commented Jun 11, 2020

@dave-ok Swagger API Docs Task 10 issue #61 solved with #62

@pelpuo
Copy link
Contributor

pelpuo commented Jun 11, 2020

@dave-ok Departments endpoint 1 issue #63 solved with #64

@simply-alliv
Copy link
Contributor

simply-alliv commented Jun 11, 2020

@dave-ok Documentation Task 1 issue #65 solved with #66

@josefophe
Copy link

josefophe commented Jun 12, 2020

@dave-ok DB Validation Task 5 issue #72 solved with #68

@simply-alliv
Copy link
Contributor

simply-alliv commented Jun 12, 2020

@dave-ok Implementation Employees Endpoint Task 2 issue #71

Transferred to @Lihemen #16 (comment)

@courage173
Copy link
Contributor

@josefophe I created an issue for your pull request please just add it to your comment. the issue number is #72

@courage173
Copy link
Contributor

courage173 commented Jun 12, 2020

@dave-ok I want to work on Employees endpoint task 1 issue #75 solved with PR #78

@Lihemen
Copy link
Contributor

Lihemen commented Jun 12, 2020

For the employee update route, please use a PATCH request instead of PUT. There’s a slight difference between the two

@simply-alliv
Copy link
Contributor

@Lihemen can I transfer my task to you, I'm working on that endpoint

@courage173
Copy link
Contributor

courage173 commented Jun 12, 2020

@dave-ok am working on Department Endpoint Task 1 with issue #79 solved with PR #80

@courage173
Copy link
Contributor

@dave-ok want to work on Department Endpoint Task2 with issue #81

@Lihemen
Copy link
Contributor

Lihemen commented Jun 12, 2020

@Lihemen can I transfer my task to you, I'm working on that endpoint

Sure

@simply-alliv
Copy link
Contributor

simply-alliv commented Jun 13, 2020

@Lihemen can I transfer my task to you, I'm working on that endpoint

Sure

Great! I will work on the next task then.

@simply-alliv
Copy link
Contributor

simply-alliv commented Jun 13, 2020

@dave-ok Implementation Employees Endpoint Task 3 issue #86 solved with #87

@simply-alliv
Copy link
Contributor

simply-alliv commented Jun 13, 2020

@dave-ok Implementation Employees Endpoint Task 4 issue #88 solve with #87

@simply-alliv
Copy link
Contributor

simply-alliv commented Jun 13, 2020

@dave-ok Implementation Employees Endpoint Task 5 issue #89 solved with #87

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
beginner An understanding of tech required enhancement New feature or request javascript node
Projects
None yet
Development

No branches or pull requests

9 participants