Case Study: How OpenRussian lets students contribute to their database
OpenRussian is the worldâs leading Russian dictionary for English- and German-speaking learners. If youâe learning Russian, try OpenRussian to look up words and learn with flash cards!
Their concept is similar to Wikipedia: every visitor can participate and contribute missing words or expressions, fill in incomplete data or correct faulty translations or word inflections.
Operation and challenges
Allowing user contributions means that participants have a lot of functionality in the websiteâs interface that is typically found in admin panels â such as editing a wordâs translation or changing its ârelated entriesâ. In addition to user contributions, a small team of students at OpenRussian also correct and expand the dictionary data, working directly on the website in the same way the users do. This high degree of coordination is made possible by the websiteâs interface, which allows in-place data adjustments.
This division of labor covers most data editing use cases but more complex changes required the founder to regularly and directly access the database to fix the data. Setting up database access and requiring all staff to learn a database access tool was too bothersome, so the process was never undertaken.
Adoption of TogetherDB
To offload the founderâs work on the database to the students, they wanted to try TogetherDB. So, they registered on togetherdb.com and created a company account in just one minute.
To connect TogetherDB to their MySQL database, the OpenRussian founder navigated to their Amazon AWS interface and opened the firewall for the database server so that the German worker server could connect to it from its specific IP address. Following the manual, they created the database user, and then in TogetherDB created the new connection with those details. Now in the dashboard, the founder can see the database connection and click it to browse the database with all its tables and data.
The second step was setting up the companyâs accounts. In the settings, the founder added all three students to the company via their email addresses, and the students then received an email with a link to join. He then created the group âStudentsâ to which he added all three of them.
Last but not least they set up the sharing configuration for the database. The kicker here was the fine granular permissions so the students can only change data in specific columns and not inadvertently break anything.
The sharing configuration was:
- Shared to: Group âStudentsâ
- Base access: Read access
- Exceptions: Can write in certain columns, e.g. can change the values in column âdisabledâ of table âsentencesâ
- Can execute SQL: No
The aftermath
With four seats in the companyâs account, they chose the âStarterâ plan for just $41 per month. For that their founder saves a few hours every single week needing to look into the database and making corrections himself â heâs now enabled his students to do that for him. The only other alternative would have been to develop a custom admin interface, but this would be a lot of work and would require frequent adjustments when the database structure changes.
The students could immediately use the new database interface without training. The founder now has extra time to invest into more fruitful tasks to advance the company.
And another use: Publishing data
Since the OpenRussian websiteâs inception, the team has published their entire dictionary database as a way to give back to the community. The idea is that other dictionaries can use the data too so the usersâ contributions have an even wider impact. They used to create weekly CSV file exports, automated by a cronjob, which then got uploaded to a public GitHub repository by hand.
While this was not too tedious, they now also use TogetherDB to publicly share the full database. This was done with a simple sharing configuration in the interface, sharing to the public with âreadâ access. This gives anybody with the link the ability to download each table as a CSV file with fresh and up-to-date data. The GitHub repository where the data was previously hosted now just contains the link to this database â and the cronjob and manual uploads are obsolete!