A big hello to the community of Open Street Map, I am Sri Charan(kad-link). I have been contributing to Nominatim since Dec 25. I am a first-time contributor to a big-scale project such as Nominatim(OSM).
In my initial days of contribution, I struggled a lot. Setting up the local setup was a scary task at that time, took me around 4 days to set it up, of course things felt strange and went over my head. Thankfully at that time there was issue regarding the CI which I had a strong grip on, I contributed to the Windows CI which required minimal knowledge of the actual code , just the dependencies and stuff. But in the process of contributing, I slowly and gradually began to understand how the code was actually doing things - the importing of data, its indexing and how it is being served in the frontend. Of course, the interesting part was the Database tables, the import tables, search tables, address computation tables etc. I actually felt the essence of DBMS course here in Nominatim in open source , which I couldn’t get when I was studying the same course in college.
I got highly familiar with the production-grade code Nominatim uses and the architecture that the org uses to do things under the hood. By now, I can say that I am completely familiarized with the codebase of Nominatim thanks to Developers Guide. Recently one of my close friends saw me contributing to Nominatim and got interested in the software. I helped him set it up locally which took me about just 1.5 hours. I felt happy about my progress but am still learning constantly. These days when I complete my college works and get some free time, instead of watching some movie or play a video game, I find myself busy reading the Developers Guide , constantly questioning the choices of the maintainers - thinking why they left this particular section in the code written like this but not like that, exploring all possible ways to improve tests(doing some permutations and combinations) especially BDD, thinking of optimizations and etc. I have explored the architecture of the codebase several times out of interest and curiosity for computer science.
Now, I feel confident that I am a quality open source contributor, doing things manually and I feel grateful for the maintainers of Nominatim for giving me a chance to contribute in this repository. I have literally learned a lot in these past 4 months upscaling my CS skills.
Also, I am delighted to share to the community that I am interested to take up the Nominatim- improve import performance issue for the upcoming Summer of Code by Google. I have been reading the Manual again to understand the issue to the core. Apart from the two solutiions provided by the maintainers, I myself am thinking of few other optimization approaches and will be happy to share with the community if I get some. But for now, I am preparing a proposal with solutions for those 2 approaches, provided by the maintainers. I have been working on the proposal for the past 1 week, drafting it myself and taking suggestions and reviews from my professors and friends rather than depending on AI tools. Hopefully, it will be ready by today.
Could anyone kindly tell where to get the proposal reviewed?