-
-
Notifications
You must be signed in to change notification settings - Fork 372
GSoC Ideas: 2022
This page is always a work in progress because we admit new ideas!
- pgRouting's GSoC Mentors:
- Introduction
- Summary of Ideas
- pgRouting application requirements
- Details of Ideas
Our mentors can mentor any project (unless otherwise stated).
Name | 2022 Availability | Mentor Years | Other |
---|---|---|---|
Stephen Woodbridge | 2009~2014 | Retired Ex-PSC | |
Daniel Kastl | YES | 2009~2021 | PSC |
Vicky Vergara | YES | 2015~2021 | PSC |
Rohith Reddy | 2017~2018 | GSoC-student 2016 + PSC | |
Cayetano Benavent | 2018~2020 | PSC | |
Vidhan Jain | 2018 | GSoC-student 2017 | |
Sourabh Garg | 2019 | GSoC-student 2018 | |
Aasheesh Tiwari | 2020 | GSoC-student 2018 | |
Rahul Chauhan | 2021 | GSoC-student 2017, 2018 | |
Ashraf Hossain | 2021 | GSoC-student 2009, 2011 | |
Ashish Kumar | YES | GSoC-student 2020, 2021 | |
Veenit Kumar | GSoC-student 2021 |
So you are interested in becoming a Google Summer of Code student? This is great! but what should you do to improve your chances of being selected? We recommend reading
- OSGeo's GSoC Recommendations for Students and
- pgRouting application requirements to start with.
Remember to be proactive
- Pick a bug or ask for one and work on fixing it so you learn the product and development environment
- Discuss your ideas on the pgrouting-dev list
- The best GSoC idea is YOUR idea! something that you are really interested in developing.
We like contributions on the pgRouting's products:
- osm2pgrouting (C++ & SQL)
- pgRouting (C & C++ & SQL)
- vrpRouting (C & C++ & SQL)
- pgroutingLayers for Qgis (python 3 & SQL)
- Number of projects to be accepted is based on mentor availability
- Review the timeline
- Regardless of the product, in order for the mentors to consider the proposal,
the pgrouting application requirements must be finished and well documented inside the proposal.
- Help for finishing these tasks will be provided by a mentor in pgrouting's gitter channel
- It is not forbidden that you guide each other
- It is forbidden to copy/paste from each other's proposal.
- It is forbidden to copy/paste from a past year's proposal.
To give you an idea about possible pgRouting GSoC ideas that can be worked:
# | Title | Description |
---|---|---|
1 | Add functionality to pgRoutingLayer plugin | Design & implement |
2 | GRAPH C++ Boost graph algorithms | Set up the algorithms to be used with pgRouting |
3 | ||
4 | ||
5 | ||
6 | ... | ... |
Other ideas? We are always interested in other ideas that potential students want to present. So please don't be shy, contact the pgrouting-dev mailing list and introduce yourself and your idea.
See a list of projects on pgRouting's Google Summer of Code site.
If you're interested, you should introduce yourself and your project idea on the pgRouting Developer mailing list and pgrouting's gitter channel. Read our wiki pages for developers and debugging and ask for help if you get stuck.
- Open an issue on GSoC-pgRouting repository.
Put the following Content inside the Issue:
- [ ] Intent of application
- [ ] Experience with GitHub & Git
- [ ] Build locally pgRouting
- [ ] Get familiar with C++
- [ ] Get familiar with pgRouting
For the Intent of Application, please write a paragraph about yourself in a comment of this issue.
Create a new issue on your fork with the following content:
- [ ] Fork the [GSoC-pgRouting](https://github.com/pgRouting/GSoC-pgRouting) repository
- [ ] activate issues in your fork
- [ ] open an issue in your fork and put this content on the issue
- [ ] Clone your fork repository in your computer
- [ ] Create remote named `upstream` pointing to https://github.com/pgRouting/GSoC-pgRouting
- [ ] checkout to the `develop` branch of `upstream`
- [ ] create new branch with name `<your-git-nick>-test`
- [ ] Edit `doc/src/pgRouting-introduction.rst` and put your name on contributor
- [ ] push the newly created branch with the change
- [ ] Create a pull request to https://github.com/pgRouting/GSoC-pgRouting
- [ ] put link of the PR and of the issue on a comment on the issue you created on [GSoC-pgRouting](https://github.com/pgRouting/GSoC-pgRouting) repository
Note: The pull request will not be honored, it is just for testing your skills using Git/GitHub
Create a new issue on your fork with the following content:
- [ ] Install requirements
* Look in the documentation what are the requirements
- [ ] Copy/Paste in a comment of this issue the compilation
- [ ] Put the link of this issue on a comment of the issue of task 1
Create a new issue on your fork with the following content:
- [ ] https://www.youtube.com/watch?v=eidEEmGLQcU
- [ ] Make Report
- [ ] https://www.youtube.com/watch?v=u5senBJUkPc
- [ ] Make Report
- [ ] https://www.youtube.com/watch?v=YnWhqhNdYyk
- [ ] Make Report
- [ ] https://www.youtube.com/watch?v=1OEu9C51K2A
- [ ] Make Report
- [ ] https://www.youtube.com/watch?v=xnqTKD8uD64
- [ ] Make Report
- [ ] https://www.youtube.com/watch?v=86xWVb4XIyE
- [ ] Make Report
- [ ] Put the link of this issue on a comment of the issue of task 1
View the videos and make a:
- one page
- handwritten
report of each one, Take a picture and add the picture of the report in a comment
Create a new issue on your fork with the following content
- [ ] Follow the [workshop](https://workshop.pgrouting.org/2.6/en/index.html) up to chapter 8
- [ ] Use OSGeoLive or your own computer
- [ ] Instead of `city_routing` use `<your-git-nick>-routing`
- [ ] Make 3 screenshots of your work, make sure that `<your-git-nick>-routing` is visible
- [ ] Put the link of this issue on a comment of the issue of task 1
The section must contain the links to the 5 issues and to the pull request
Add functionality to the pgRoutingLayer
Currently, there are only these supported functions
The latest documentation has many more functions that can be added to the pgRoutingLayer plugin.
Many of the functions work in a similar way. For example the pgr_fooCost
work similarly
In your proposal:
- You will determine at least 3 similar functions that are not yet implemented on pgRoutingLayer.
- Include reasons why you think the functions are similar.
- The details of the idea will be in the form of Proposed User's Documentation.
From this list of installed functions ignore the ones that start with _
those are internal functions and are not API to the user of pgRouting.
Consider that at the expected products at the end of GSoC are:
- Self Documented Code
- User's Documentation
- Comments on code when needed
Languages needed for this idea: python3, SQL
From Boost Graph 1.56 which is the official minimum version since v3.2. In section 22 (Algorithms), there is a list of algorithms from where:
- Sparse Matrix Ordering Algorithms
- Graph Metrics
- and many more sections
Have algorithms not yet been implemented on pgRouting
For the proposal choose One Algorithm that is not yet implemented on pgRouting The proposal must include:
- All requirements from GSoC
- All requirements from OSGeo
- The details of the algorithm need to have
- Section: Testing data
- Section: Proposed Documentation
Consider that the expected products at the end of GSoC are:
- Self Documented Code
- User's Documentation
- Simple pgtap tests
The section must have the following statements
- Link to the Boost example
- CREATE
- INSERT
- SELECT
- A drawing representing the created graph (can be hand made as Graphs do not have geometries)
That will allow mentors to test data
Try to make it look like a pgRouting function documentation
Normally the Boost algorithms come with an example, base your proposal on that example's graph
Example:
From
You would need to CREATE TABLE foo ...
and INSERT INTO foo ...
a PostgreSQL/pgRouting representation of the graph in the example (remember that on C/C++ counting start from 0, but on PostgreSQL counting start from 1)
Pair edges[14] = { Pair(0,3), //a-d in PostgreSQL -> (1,4)
Pair(0,5), //a-f
Pair(1,2), //b-c
...
Pair(5,7), //f-h
Pair(6,7) }; //g-h
Then test that the query can be executed and give a result with pgr_dijkstra
:
SELECT * FROM pgr_dijkstra('SELECT * FROM foo', 1, 7);
.