* Merge main into production (#2041) * feat: grammar analytics popup redesign (#1670) * fix: revert change to how unread notification count is calculated (#1671) * fix: revert some changes to leaving space logic, updated copy (#1677) * feat: add github action to add needs testing labels to closed issues (#1678) * 1653 GitHub action to add needs testing labels (#1679) * feat: add github action to add needs testing labels to closed issues * fix: add all needs testing labels * fix: resolve overflow for long lemmas (#1680) * 1512 level up notification (#1570) * feat: initial work for level up notification * feat: initial animation * feat: level up slide animation, wait for image data to load * feat: trigger animation on level up * feat: added sound to level up notificaton * fix(class_code): class code was not getting context * Morph-repo-2 (#1681) * feat(morphs): repo for getting lang-specific list of morphs * integrated repo into use of morph features and tags * generated * merged with previous push * generated * generated * chore: fix .env file path --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: ggurdin <46800240+ggurdin@users.noreply.github.com> Co-authored-by: ggurdin <ggurdin@gmail.com> * 1655-hide-rooms-filters-with-7-rooms (#1656) * ui(chat_list_body): hide filters if < 7 rooms * generated --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: ggurdin <46800240+ggurdin@users.noreply.github.com> * Fluffychat merge (#1685) chore: Merge upstream changes --------- Signed-off-by: Krille <c.kussowski@famedly.com> Co-authored-by: krille-chan <christian-kussowski@posteo.de> Co-authored-by: Krille <c.kussowski@famedly.com> Co-authored-by: Linerly <linerly@proton.me> Co-authored-by: Priit Jõerüüt <hwlate@joeruut.com> Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org> Co-authored-by: fadelkon <fadelkon@posteo.net> Co-authored-by: Aindriú Mac Giolla Eoin <aindriu80@gmail.com> Co-authored-by: Edgars Andersons <Edgars+Weblate@gaitenis.id.lv> Co-authored-by: josé m <correoxm@disroot.org> Co-authored-by: Bezruchenko Simon <worcposj44@gmail.com> Co-authored-by: Christian <christian-pauly@posteo.de> Co-authored-by: - <hitekex@yandex.ru> Co-authored-by: Angelo Schirinzi <Odi-3@users.noreply.hosted.weblate.org> Co-authored-by: xabirequejo <xabi.rn@gmail.com> Co-authored-by: Piotr Orzechowski <piotr@orzechowski.tech> Co-authored-by: Rex_sa <rex.sa@pm.me> Co-authored-by: Tewuzij <tenajeza@outlook.com> Co-authored-by: goknarbahceli <goknarbahceli@proton.me> Co-authored-by: தமிழ்நேரம் <anishprabu.t@gmail.com> Co-authored-by: Erin <erin@erindesu.cz> Co-authored-by: EpicKiwi <me@epickiwi.fr> Co-authored-by: Christian Tietze <me@christiantietze.de> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * feat: don't award analytics data for messages not in l2 (#1686) * feat: trim username and password fields before login (#1687) * feat(morph_analytics_view): show all morph icons if support account * feat: allow users to edit lemmas (#1694) * feat: move language dropdowns into learning settings dialog (#1695) * feat: use onInitStateChanged in login function to redirect to chat view quicker (#1696) * feat: bring back share link to join spaces (#1701) * fix: added linkify to message token text widget (#1702) * chore: update reply and link text styling (#1708) * fix: reenable token clicking after adding linkify spans (#1711) * chore: update link text color in dark mode (#1716) * feat: add submit button to learning settings popup (#1717) * 1547 level indicator for all users (#1722) * feat: publicly viewable target language and level indicator --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Add message meaning challenge activity (#1706) * Add message meaning mode to toolbar --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: ggurdin <46800240+ggurdin@users.noreply.github.com> Co-authored-by: ggurdin <ggurdin@gmail.com> * Vi-copy (#1724) * complete all vi translations * fix typo * fix: override text field's default error styling to remove gap but still show error outline on username field (#1726) * 1689-make-separate-room-extensions (#1727) * fix(room extensions): Made first use of room extensions the original definition --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: ggurdin <46800240+ggurdin@users.noreply.github.com> * feat: added XP offset data to public profile to prevent user from ever going down a level (#1731) * fix: unfocus keyboard on click outside in activity planner page, add done button to final text field (#1732) * feat: move reply button to chat view header (#1733) * fix: replace web preview icons (#1746) * fix: add back password reset button (#1747) * feat: update country dropdown to match style of language dropdown (#1756) * chore: add missing grammar copy (#1762) * allow user to simply search for username without prefix and suffix (#1761) * allow user to simply search for username without prefix and suffix * remove debug print * generated --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: ggurdin <46800240+ggurdin@users.noreply.github.com> * fix: remove expanded widget from country tile (#1765) * fix: resolve memory leak on iOS caused by theme data (#1768) * chore: update vocab copy (#1770) * Unborked locales (#1741) * feat: localized languages --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: ggurdin <ggurdin@gmail.com> Co-authored-by: ggurdin <46800240+ggurdin@users.noreply.github.com> * chore: reduce padding in learning setting dropdowns (#1772) * chore: updated input bar copy (#1774) * 1719 grammar detailed view in analytics (#1728) * feat: grammar analytics details page --------- Co-authored-by: wcjord <32568597+wcjord@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix: update out-of-date language cache (#1775) * Remove routes that can lead to space chats (#1757) * Use push instead of go when traversing spaces * Redirects from space chat page --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: ggurdin <46800240+ggurdin@users.noreply.github.com> * fix: dispose TextPainter after use (#1777) * fix: combine token with following punctuation to prevent punctuation from causing newline (#1783) * fix: make learning settings dropdowns stand out against background (#1784) * fix: remove analytics from memory on logout (#1786) * feat: use custom vocab and morph icons (#1787) * Copies for all (#1780) * initial script * copies for all! * revert intl files * mistaken en to vi translation * improve translation * add vi translation, fix trnaalste script to respect existing metdata * revert translation files * fix translation to only add more without changing too much existing translations --------- Co-authored-by: ggurdin <46800240+ggurdin@users.noreply.github.com> * Revert "Copies for all (#1780)" (#1788) This reverts commit |
||
|---|---|---|
| .github | ||
| .vscode | ||
| android | ||
| appimage | ||
| assets | ||
| docs | ||
| fdroid | ||
| fonts | ||
| integration_test | ||
| ios | ||
| lib | ||
| linux | ||
| macos | ||
| pangea_packages/fcm_shared_isolate | ||
| scripts | ||
| snap | ||
| test | ||
| test_driver | ||
| web | ||
| windows | ||
| winuwp | ||
| .env | ||
| .gitignore | ||
| .mailmap | ||
| .metadata | ||
| analysis_options.yaml | ||
| CHANGELOG.md | ||
| config.sample.json | ||
| devtools_options.yaml | ||
| Dockerfile | ||
| l10n.yaml | ||
| LICENSE | ||
| licenses.yaml | ||
| PRIVACY.md | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| README.md | ||
| sentry.properties | ||
| TRANSLATORS_GUIDE.md | ||
Overview
Pangea Chat is a web and mobile platform which lets students ‘learn a language while texting their friends.’ Addressing the gap in communicative language teaching, especially for beginners lacking skill and confidence, Pangea Chat provides a low-stress, high-support environment for language learning through authentic conversations. By integrating human and artificial intelligence, the app enhances communicative abilities and supports educators. Pangea Chat has been grant funded by the National Science Foundation and Virginia Innovation Partnership Corporation based on its technical innovation and potential for broad social impact. Our mission is to build a global, decentralized learning network supporting intercultural learning and exchange.
Pangea Chat Client Setup
- Download VSCode if you do not already have it installed. This is the preferred IDE for development with Pangea Chat.
- Download flutter on your device using this guide: https://docs.flutter.dev/get-started/install
- Test to make sure that flutter is properly installed by running “flutter –version”
- You may need to add flutter to your path manually. Instructions can be found here: https://docs.flutter.dev/get-started/install/macos/mobile-ios?tab=download#add-flutter-to-your-path
- Ensure that Google Chrome is installed
- Install the latest version of XCode
- After downloading XCode, ensure that the iOS simulator runtime is installed. To do this, after initially downloading XCode, a screen will open where you can select the platforms you wish to develop for. Selected iOS and download from there.
- Install the latest version of Android Studio
- After downloading Android Studio, open Android Studio and go through setup wizard
- In Android Studio, open settings -> Android SDK -> SDK tools, then click “Android SDK Command Line Tools” and click OK to run the download
- If you do not have homebrew install on your device, install homebrew by follow the instructions here: https://brew.sh/
- Run “brew install cocoapods” to install cocoapods
- Run “flutter doctor” and for any missing components, follow the instructions from the print out to install / setup
- Clone the client repo
- Uncomment the lines in the pubspec.yaml file in the assets section with paths to .env file
- To run on iOS:
- Run “flutter precache --ios”
- Go to the iOS folder and run “pod install”
- To run on Android:
- Download Android File Transfer here: https://www.android.com/filetransfer/
- To run the app from VSCode terminal:
- On web, run
flutter run -d chrome –hot - Or as a web server (Usage with WSL or remote connect)
flutter run --release -d web-server -web-port=3000 - On mobile device or simulator, run
flutter run –hot -d <DEVICE_NAME>
- On web, run
Special thanks
-
Pangea Chat is a fork of FluffyChat which is a [matrix] client written in Flutter. You can support the primary maker of FluffyChat directly here.
-
Fabiyamada is a graphics designer and has made the fluffychat logo and the banner. Big thanks for her great designs.
-
Advocatux has made the Spanish translation with great love and care. He always stands by my side and supports my work with great commitment.
-
Thanks to MTRNord and Sorunome for developing.
-
Also thanks to all translators and testers! With your help, fluffychat is now available in more than 12 languages.
-
Noto Emoji Font for the awesome emojis.
-
WoodenBeaver sound theme for the notification sound.
-
The Matrix Foundation for making and maintaining the emoji translations used for emoji verification, licensed Apache 2.0