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

PLANNING ISSUE: v2 API development #2755

Closed
stefannibrasil opened this Issue Jun 1, 2018 · 15 comments

Comments

Projects
4 participants
@stefannibrasil
Contributor

stefannibrasil commented Jun 1, 2018

1. About the project

@milaaraujo and I will be working part-time (20h per week) on the v2 API development this Rails Girls Summer of Code, starting July 2nd until September 28th. The entire description for the project can be found here.

We want to coordinate better as a team and also get feedback, so we can continue continue the work from #1449 (from which we have tried to set as base for our timeline).

2. Working hours (PDT timezone)

We will be working together at the following time:

18h-21h weekdays
14h-19h Saturdays

3. Timeline/Milestones

Week(s) Days Tasks
1 02/July-6/July Study Grape Entities and Swagger code and docs
2-3 9/July-20/July Refactor Search API #3070
4 23/July-27/July Show most recently updated people on Search API #3069
5 30/July-03/Aug Add Author and Tagged notes to Swagger interface
6 06/Aug-10/Aug Improve JSON tests (convert them to more standardized API calls)
7 13/Aug-17/Aug Improve the search results
8 20/Aug-24/Aug Work on the dynamic search #987
9 27/Aug-31/Aug Ensure multiple format access: JSON, RSS, etc., for legacy endpoints that have these formats
10 03/Sep-07/Sep Write unit tests for the back-end to various APIs by writing Services like TypeAheadService and SearchService
11 10/Sep-14/Sep Check with the other contributors to see what API functions they need or want
12 17/Sep-21/Sep Ensure that v2 of Public Lab is fully working and solve possible bugs
13 24/Sep-28/Sep Finish our contribution by reviewing the docs and help planning the next steps for future contributors

4. Real timeline (updated each week to compare with the one above)

Week(s) Days Tasks
1 02/July-6/July Studied Grape Entities and Swagger code and docs. Finished #2847
2-3 9/July-20/July Refactored Search API #3070, Added some docs in #3068 and #3115
4 23/July-27/July Show most recently updated people on Search API #3069
5 30/July-03/Aug Working on #3069
6 06/Aug-10/Aug #3069 and #3217
7 13/Aug-17/Aug Improving /profiles endpoint on #3235 and adding unit tests to SearchService
8 20/Aug-24/Aug
9 27/Aug-31/Aug
10 03/Sep-07/Sep
11 10/Sep-14/Sep
12 17/Sep-21/Sep
13 24/Sep-28/Sep

5. Questions

Is our timeline realistic and modular? What do you think we can remove or change?

6. Notes

We also plan to create first-timers-only issues along the way. Also, we didn't add to the timeline, but we'll be adding tests to all the changes and we have separated some days to add missing tests for the existing code. Another point is to ask regularly to the team if they need anything from the API.

@jywarren @publiclab/reviewers @publiclab/soc

@jywarren

This comment has been minimized.

Show comment
Hide comment
@jywarren

jywarren Jun 2, 2018

Contributor

Love the table!!! I'll review soon, at a meeting right now. Thanks!!!!

Contributor

jywarren commented Jun 2, 2018

Love the table!!! I'll review soon, at a meeting right now. Thanks!!!!

@jywarren

This comment has been minimized.

Show comment
Hide comment
@jywarren

jywarren Jun 2, 2018

Contributor

First glance this looks amazing. There are a lot of redundancies and hard to read sections in the current API. I think addressing these will be something to keep in mind as you go.

Contributor

jywarren commented Jun 2, 2018

First glance this looks amazing. There are a lot of redundancies and hard to read sections in the current API. I think addressing these will be something to keep in mind as you go.

@jywarren

This comment has been minimized.

Show comment
Hide comment
@jywarren

jywarren Jun 2, 2018

Contributor

Also, perhaps regularly checking in with other contributors to see what API functions they need or want, OR what of their work could be expressed through the API. A lot of JavaScript functionality could be redactores to go to through a cleaner and better documented API.

Great work!

Contributor

jywarren commented Jun 2, 2018

Also, perhaps regularly checking in with other contributors to see what API functions they need or want, OR what of their work could be expressed through the API. A lot of JavaScript functionality could be redactores to go to through a cleaner and better documented API.

Great work!

@jywarren

This comment has been minimized.

Show comment
Hide comment
@jywarren

jywarren Jun 2, 2018

Contributor

One redundancy example is between TypeaheadService and SearchService -- could be much simplified!

Contributor

jywarren commented Jun 2, 2018

One redundancy example is between TypeaheadService and SearchService -- could be much simplified!

@gauravano

This comment has been minimized.

Show comment
Hide comment
@gauravano

gauravano Jun 2, 2018

Member

hi, @stefannibrasil there is also an open issue for API which requires some help. The basic API for fetching nodes (taking lat,lon input ) is built by me in #1987 . I wonder if you would be interested in solving this one? Thanks.

Member

gauravano commented Jun 2, 2018

hi, @stefannibrasil there is also an open issue for API which requires some help. The basic API for fetching nodes (taking lat,lon input ) is built by me in #1987 . I wonder if you would be interested in solving this one? Thanks.

@jywarren

This comment has been minimized.

Show comment
Hide comment
@jywarren

jywarren Jun 4, 2018

Contributor

I have been seeing some JSON tests that probably correspond to different things we could convert to more standardized API calls. Could be worth searching through the tests for the string "json" to find some and try to improve them, when you reach the end of your plan?

Contributor

jywarren commented Jun 4, 2018

I have been seeing some JSON tests that probably correspond to different things we could convert to more standardized API calls. Could be worth searching through the tests for the string "json" to find some and try to improve them, when you reach the end of your plan?

@stefannibrasil

This comment has been minimized.

Show comment
Hide comment
@stefannibrasil

stefannibrasil Jun 4, 2018

Contributor

That's great, thanks for the comments! I've edited the Timeline to address your points.

@gauravano Yes, that would be great, I can try to help. Could you please guide me through the actionable tasks and explain how can I help? You need help with the part 3 from #1934, is it right? if so, we can discuss there. Thanks!

Contributor

stefannibrasil commented Jun 4, 2018

That's great, thanks for the comments! I've edited the Timeline to address your points.

@gauravano Yes, that would be great, I can try to help. Could you please guide me through the actionable tasks and explain how can I help? You need help with the part 3 from #1934, is it right? if so, we can discuss there. Thanks!

@gauravano

This comment has been minimized.

Show comment
Hide comment
@gauravano

gauravano Jun 5, 2018

Member

hmm, that part is also remaining but I guess @sagarpreet-chadha is on it. I want help on improving the first part of #1934 , In that part, I build a new API for fetching nearby nodes to a location, taking lat,lon as input, but for keeping it simple at first we decided to not include tags in the input. But as this API worked properly, we need to change that API or can build a new one (any way you are comfortable). So, the new API could accept the tags too in input URL and then process accordingly. That would solve the #2254 issue. What do you think? Thanks.

Member

gauravano commented Jun 5, 2018

hmm, that part is also remaining but I guess @sagarpreet-chadha is on it. I want help on improving the first part of #1934 , In that part, I build a new API for fetching nearby nodes to a location, taking lat,lon as input, but for keeping it simple at first we decided to not include tags in the input. But as this API worked properly, we need to change that API or can build a new one (any way you are comfortable). So, the new API could accept the tags too in input URL and then process accordingly. That would solve the #2254 issue. What do you think? Thanks.

@gauravano

This comment has been minimized.

Show comment
Hide comment
@gauravano

gauravano Jun 5, 2018

Member

Here's the current URL

# Request URL should be /api/srch/locations?srchString=QRY[&seq=KEYCOUNT&showCount=NUM_ROWS&pageNum=PAGE_NUM]
# Note: Query(QRY as above) must have latitude and longitude as srchString=lat,lon
. We want to pass tags too and then process the input accordingly in
def nearbyNodes(srchString)
to pass output nodes from there.

Member

gauravano commented Jun 5, 2018

Here's the current URL

# Request URL should be /api/srch/locations?srchString=QRY[&seq=KEYCOUNT&showCount=NUM_ROWS&pageNum=PAGE_NUM]
# Note: Query(QRY as above) must have latitude and longitude as srchString=lat,lon
. We want to pass tags too and then process the input accordingly in
def nearbyNodes(srchString)
to pass output nodes from there.

@stefannibrasil

This comment has been minimized.

Show comment
Hide comment
@stefannibrasil

stefannibrasil Jun 6, 2018

Contributor

Alright, that looks good, I will start working on it tomorrow. Thanks for the info, @gauravano I'll ask any questions that I might have on the Issue page :)

Contributor

stefannibrasil commented Jun 6, 2018

Alright, that looks good, I will start working on it tomorrow. Thanks for the info, @gauravano I'll ask any questions that I might have on the Issue page :)

@jywarren

This comment has been minimized.

Show comment
Hide comment
@jywarren

jywarren Jul 6, 2018

Contributor

Congrats on merging #2790!

I wanted to note that one of your milestones above - "Refactor/Simplify SearchService and Search endpoints" -- sounds particularly great and that you may after that want to look at #987 for some ways that we're hoping search will be refined to show really relevant results. It's one of the biggest usages of the API, and a place you could really see some highly visible improvements to how people are able to find things around the site! A great application of your code refactoring and reworking of the API.

Thanks and it was great meeting today!!! 🎉 🙌

Contributor

jywarren commented Jul 6, 2018

Congrats on merging #2790!

I wanted to note that one of your milestones above - "Refactor/Simplify SearchService and Search endpoints" -- sounds particularly great and that you may after that want to look at #987 for some ways that we're hoping search will be refined to show really relevant results. It's one of the biggest usages of the API, and a place you could really see some highly visible improvements to how people are able to find things around the site! A great application of your code refactoring and reworking of the API.

Thanks and it was great meeting today!!! 🎉 🙌

@stefannibrasil

This comment has been minimized.

Show comment
Hide comment
@stefannibrasil

stefannibrasil Jul 7, 2018

Contributor

Thanks, @jywarren
we added that to our Todo. We were discussing our next steps and we will start on those endpoints next week! Stay tuned for questions 😆 just kidding, but we are planning to at least reduce the code duplication for now. Yeah, it was great talking with everyone together. Cheers!

Contributor

stefannibrasil commented Jul 7, 2018

Thanks, @jywarren
we added that to our Todo. We were discussing our next steps and we will start on those endpoints next week! Stay tuned for questions 😆 just kidding, but we are planning to at least reduce the code duplication for now. Yeah, it was great talking with everyone together. Cheers!

@jywarren

This comment has been minimized.

Show comment
Hide comment
@jywarren

jywarren Sep 24, 2018

Contributor

Here are some issues that could be broken out this week!

These could all be broken out into individual issues, but don't worry - we can also preserve them as a list here and add the break-me-up label for others to help break them out!

Contributor

jywarren commented Sep 24, 2018

Here are some issues that could be broken out this week!

These could all be broken out into individual issues, but don't worry - we can also preserve them as a list here and add the break-me-up label for others to help break them out!

@milaaraujo

This comment has been minimized.

Show comment
Hide comment
@milaaraujo

milaaraujo Sep 27, 2018

Contributor

Hey @jywarren, I moved all your points to individual issues here: https://github.com/publiclab/plots2/projects/6

Contributor

milaaraujo commented Sep 27, 2018

Hey @jywarren, I moved all your points to individual issues here: https://github.com/publiclab/plots2/projects/6

@stefannibrasil

This comment has been minimized.

Show comment
Hide comment
@stefannibrasil

stefannibrasil Sep 27, 2018

Contributor

Moving the API planning/discussion to #3520

Contributor

stefannibrasil commented Sep 27, 2018

Moving the API planning/discussion to #3520

RGSoC 2018 automation moved this from RGSoC Notes to Done Sep 27, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment