countries-states-cities-database
countries-states-cities-database copied to clipboard
Data entry GUI - make it easy for the community to correct bad data and add new data
I think this project needs a high degree of crowdsourcing in order to sustainably maintain the validity of the data. Countries, states and cities change over time, and a diverse group of contributors is a huge benefit for this world-spanning data set.
Therefore I would propose that a GUI is built where users can look up countries, states and cities and view the data, and right from the GUI propose specific changes which will show up as standard formatted issues (or even pull requests directly). Essentially I think the format of the SQL files and the size of the files makes it a bit inaccessible to contribute which prevents us from crowdsourcing the work.
I think a prototype of this app could be built using https://github.com/ToolJet/ToolJet, or we could go ahead and make a React app or something from the get go.
The missing piece of the puzzle that I haven't figured out is how we could make the suggestions end up directly as Pull Requests. Surely there is some tooling out there that would let us create PRs programatically like that? Some GitHub bot or something?
User story
- Open the country list
- Search for a country, say Norway
- Look at the data for Norway
- Click on the state list
- Notice that the states are outdated
- Click "Add new state(s)"
- Fill in all the fields
- Click a button to add additional rows to your suggestion
- Fill in all the fields for your additional rows
- Click "Propose changes"
@braaar Thanks for your suggestion. Really appreciate. 🙇🏼♂️
I liked your suggestions. Obviously, it's quite time-consuming with the SQL updates.
I think if we're going to use Tooljet we have to self-host it somewhere. Because as per the tool, it says "ToolJet does not store any data returned from your data sources."
Continue User Story: 11. Proposed changes will be stored in a separate table. 12. Ones are accepted from our side. It will get merged into the actual table. 13. Nightly Cron will take up the rest of the work of exporting SQL and generating PRs.
My availabilities are quite short, So will you be able to help me with this?
@braaar Thanks for your suggestion. Really appreciate. 🙇🏼♂️
I liked your suggestions. Obviously, it's quite time-consuming with the SQL updates.
I think if we're going to use Tooljet we have to self-host it somewhere. Because as per the tool, it says "ToolJet does not store any data returned from your data sources."
Continue User Story: 11. Proposed changes will be stored in a separate table. 12. Ones are accepted from our side. It will get merged into the actual table. 13. Nightly Cron will take up the rest of the work of exporting SQL and generating PRs.
My availabilities are quite short, So will you be able to help me with this?
Absolutely I'll help! Do you think ToolJet could be a nice tool to use? We can do some testing running it on our local machines first, I suppose. Is there a database already set up where we could make these suggestion tables?
I suppose we could eliminate a lot of complexity for the first iteration of this service by setting all of this up in a local environment where the contributors would run a copy of the database and ToolJet (for example using docker-compose). We could have a button in the ToolJet GUI that writes the changes to the .sql files, which can be checked out in a branch, ready for a PR.
Not sure if ToolJet's is the right fit for our project, but we can give it a try!
No, the database is not set up for suggestion tables.
I think that's a good idea for the initial phase.
That's an interesting discussion. What about creating a simple app that is using the Github Pull API?