Our Partner

7000 Languages creates free online language-learning courses in partnership with Indigenous, minority, and refugee communities so they can keep their languages alive.

Problem

7000 Languages works with indigenous, minority, and refugee communities around the world for free to create language learning courses that are published online for anyone to benefit from. The process of developing a course is very time intensive, usually taking 1-2 years. As such, there are many communities on the 7000 Languages waitlist whom they do not have the resources to assist - and even more communities around the world they are unable to reach.

Solution

We are working with 7000 Languages to build a mobile application that allows users to both:

  1. Develop and publish language learning courses by themselves.

  2. Join and learn in published language learning courses.

There is currently no other app that empowers communities to build and structure language learning courses. This functionality will empower communities to begin language conservation efforts by themselves, dramatically broadening the range of communities 7000 Languages will be able to support.

Design

This app will draw users of all different ages, cultural backgrounds, and technical ability. Many of the Individuals with the language expertise needed to build a course will likely be elderly / have limited technical ability - especially in languages with only a few proficient speakers. With this in mind, we aim to make the experience of adding learning content and structuring courses as straightforward and accessible as possible. Moreover, our target audience for learners is young children. As such, it was similarly important for our learner-facing side of the app to be engaging and intuitive. These were big challenges to design for on smaller, mobile screens.

Tech Stack

7000 Languages is a full-stack project that is written in JavaScript and built for the iOS and Android platforms. The frontend mobile application is built with React Native, Expo, and Redux. The API is created with Node.js and Express and tested with Jest. Application data is stored in MongoDB and AWS S3, and the entire codebase is linted and formatted based on the Airbnb Javascript Style Guide.

Features

Landing Page

The 7000 Languages landing page welcomes contributors and learners to personalize their app experience from the get-go. Specifically, users can select their preferred language to use throughout the app, which is possible because of our efforts to internationalize all informational text. In addition, Google sign-in is presented on the landing screen for users to save all of their data under an account they already use.

7000 Languages Landing

Contributor Course View

At the heart of 7000 Languages are course contributors: individuals who have a close connection to a language that they wish to help others learn. Giving them the right tools to teach the language they know was an important consideration in developing the app, and we settled on a well-organized and highly customizable system. Course contributors can view a breakdown of their course as Units, Lessons, and Vocab Items, and they're able to modify any data in their course. They're also able to bring their own perspective to the course, by ordering the Units, Lessons, and Vocab Items and introducing the many components that make it up.

7000 Languages Contribution

Recording Vocab Items

Along with the organized and customizable course contributor interface, contributors are able to easily create course vocabulary items using several different input types. Text, pictures, and audio recordings are all supported to ensure a rich learning experience for users enrolled in the course. These features work for both Latin and Non-Latin languages, making the app accessible to many languages across the globe.

7000 Languages Recording

Course Search

The other core user group on the 7000 Languages app are learners, whose experience discovering and working through courses should be seamless and practical. To ensure the first of the two requirements was met, we implemented a simple yet powerful course search page, which can filter all courses by name and creator. To give users the ability to try out in progress courses or join in on courses made by people they know, they can join private courses, which are protected by a course code.

7000 Languages Course Search

Learner Course View

After finding a language learning course they'd like to start, learners are presented with an intuitive set of pages to begin practicing Vocab Items. Learners can also view a high level of the course and navigate through Units and Lessons too, much like contributors can as they setup a course. Keeping pages consistent and understandable is important in learning a language, so we took care in our implementation of this set of pages to ensure content is readable at all times without unexpected shifts or errors. For example, on the Lesson screen, image and audio files are cached in order to be presented quickly and not interrupt a learner or contributor’s experience.

7000 Languages Learner Course VIew

Activities

Building connections is what helps people learn, and emphasizing this is the key component of the 7000 Languages App's learning activities. Each activity focuses on a randomized selection of Vocab items from the lesson, and a learner's progress through the practice session is automatically saved to be picked up later. The look and feel of the practice experience went through a careful design and implementation process to enhance interactivity and learning success.

7000 Languages Activities

Settings

Just as the 7000 Languages app helps teach many different languages through contributed courses, the app itself can be used in several different languages with a global setting. Courses also have settings themselves, including their privacy and corresponding security code if they are private.

7000 Languages Settings

Internationalization

In order to support 7000 Languages international audiences, the app can be presented in English, French, and Spanish, with potential to be translated to any language.

7000 Languages Internationalization

Being a part of 7000 Languages this semester was a wonderful learning experience! Getting to know new team members this project cycle that were excited to be a part of an impactful project helped me feel included and motivated to learn more about language revitalization efforts, all while contributing to the code base! I’m incredibly proud of the outcome, and everything I took part in for the 7000 Languages app!
Estrella Popoca
Hack4Impact Software Developer
Estrella Popoca

Meet The Team

Yogi Koppol Yogi Koppol Product Manager
Ashay Parikh Ashay Parikh Tech Lead
Praneeth Guduguntla Praneeth Guduguntla Product Designer
Madison Park Headshot Madison Park Product Designer
Jocelyn_Xu Jocelyn Xu Product Designer
Eesha Barua Headshot Eesha Barua Software Developer
Rustom Ichhaporia Headshot Rustom Ichhaporia Software Developer
Xiaofan Li Headshot Xiaofan Li Software Developer
Alex Masgras Headshot Alex Masgras Software Developer
Estrella Popoca Headshot Estrella Popoca Software Developer
Jamie Rollison Headshot Jamie Rollison Software Developer
Nayonika Roy Nayonika Roy Software Developer
Ishaan Sharma Ishaan Sharma Software Developer
Jessica Singh Jessica Singh Software Developer
Andy Wong Andy Wong Software Developer