Project 2
Feature Brainstorming
Translation request | Posts where users display content they need help translating. They also specify language translated to and from. |
Pdf to raw text | Having a tool that converts from a pdf to a raw text to be translated (with its correspondent images) allows a better integration with the website, giving space for other features (adding notes to specific lines, etc) and not compromising security. |
Sections | Content uploaded get partitioned into short but meaningful sections which can be translated by one user or separately by different users |
Translation rating | Users can rate the quality of a translation section created by a different user. Then, when showing multiple translations of the same section, we sort the translations from the top-rated to the worst-rated user. |
Translation retrieval | After each section of a content is translated, users can choose which translation for each section they prefer, and retrieve the entire translation as a simple text file |
Tags | Users can add tags to content to give info on the context (by subject, by original source, etc…), which can be used by other users to search for content |
Access control | Users can control which other users can add translations (can everyone do it, only certain users, etc…), and who can’t |
Latex support | Users can use latex math formulas, which then get converted to the proper symbols (similar to how gradescope does it) |
Translation Deadline | Users can place deadlines on when they need the content they post to be translated. Then, priority is provided to more urgent content in recommendations, gamification, etc… |
Automatized Translation | For sections of the text that have not been translated yet, the app provides an computer generated translation (using Google Translate or some LLM) |
Verified Translators | Translators that exceed a certain threshold in rankings for their translations can get some sort of verified badge, giving more weight or visibility to their work |
Gamified translations | Translators can get points based on the number of approvals they get for their translations and “level up” accordingly. \ More points awarded to those that translate higher-priority content faster. |
Similar Papers | Users can find papers similar to the ones they are viewing with translations available in the same language |
References | Users can cite the references or sources for their translations or request that a translator provide a reference for greater verification |
Request to Translate Again | Users can request that a paper be translated again but in another language of their choosing |
Notes | Every translation has a “notes about the translation” where the translator can add further information about the translation (for instance, explaining some untranslatable terms, establishing definitions, etc). |
Text to speech | Enhances the accessibility and user experience of the platform by converting written text into spoken words. |
Translate-a-thons | Scheduled events or times where the platform organizes focused translation efforts for specific content, themes, or languages. |
Translator spotlight | Showcase exceptional translators or translations on the platform, giving them recognition and encouraging others to strive for excellence. |
Translator statistics | You can go to a users page, and see statistics about their translations: how many translations, which languages, since when, etc… |
Glossary | Build a collaborative glossary where users can contribute definitions, explanations, and context for commonly used terms across translations. |
Count of translated lines | Ratio of (translated phrases)/(total phrases), displayed to users so they know which translation needs more work. |
App Outline
Section[Translation Request]
Purpose: Represents a short but meaningful (3-4 sentences) part of a content that can be translated independently
OP: Uploaded content that needs to be translated gets grouped up into sections. Then, users can provide translations to each section as if they were separate, which allows them to collaborate more easily.
Translation [Section]
Purpose: Represents a possible translation of section in a text
OP: Each section in the app can be translated in different ways by different users. Each of these possible translations are then displayed as alternatives.
Translation Request
Purpose: Allows users to publish content (article, educational text, etc…) on the website to be translated
OP: Users upload content they want to be translated in text form, in addition to the languages translated to and from, and a description. The text then gets divided into sections as it gets translated separately. After the translation is complete, you can download the finished translation.
Tag [Translation Request]
Purpose: Represent any relevant information about the context of a translation request (language, subject, content source, etc…)
OP: Works similarly to how tags work in other apps: People posting translation requests associate it with tags, which allows people to look things up by tags, and it is displayed as information to users, etc… The unique use for our app will be each request will have two mandatory** **tags: language from and language to. These will work similar to other tags, but might have their own interface because of how crucial they are.
Access Control [Translation Request, User]
Purpose: Allows users to control which users can add translations to translation requests they made.
OP: After posting translation requests on the website, users can choose which other users can add translations to sections for this request. Either everyone can, or a specified list can. Users, if they do not have access to add translations, can request that access (this might be considered a different ‘Request’ concept, but is generic enough to not include for this assignment).
Scrapbook of Comparables
https://docs.google.com/presentation/d/1A6-F1FdpibsIUN9Euug2-EYZSixJx2CvAkjtuylG6MI/edit?usp=sharing
Storyboard and Sketches
Flows
Submitting a Request
- Navigate to Home Page and click on “Submit a Request” button
- Modal containing request form opens up
- User fills out request form
- User specifies language “to” and “from” for translation
- User specifies translators they want using access control settings
- User adds a description to their request specifying what they have trouble with, adding any additional details, etc.
- User adds tags related to the content they want translated
- User inputs the document in need of translation
- First the user chooses file upload or text upload
- If file upload, upload directly
- If text upload, copy and paste
- First the user chooses file upload or text upload
- User submits the request form and a toast appears to confirm the success or failure of the request submission
- User can navigate to their profile and see all requests they’ve made and access it from there
- Request should also populate in “untranslated requests” section of app
Translating a Request
- User goes to the link of a translation request
- He sees the text in the original language, grouped into sections
- For each section, he sees whether that section has been translated, and the upvote number for the most popular translation.
- He clicks on a section. He sees the previous translations made for that section, sorted by upvotes, which he can also upvote.
- He types out his translation for the section, and submits.
- He can repeat this process with other sections as well, until he completely or partially translates the text.
Assembling/Exporting a Request
- Click on a translation request
- Click “Export translation” button
- User sees a “Select translations” checkbox for each section of the content, default is to download the most upvoted (or only) translation for each section
- User selects one translation per section
- User clicks “Export” to download the compiled content