freeCodeCamp's open-source mobile app

Overview

freeCodeCamp.org Social Banner

Pull Requests Welcome first-timers-only Friendly

freeCodeCamp.org's open-source mobile app

freeCodeCamp.org is a friendly community where you can learn to code for free. Our full-stack web development and machine learning curriculum is completely free and self-paced. We have thousands of interactive coding challenges to help you expand your skills.

This repository is an adaptation of the freecodecamp.org's interactive curriculum to a flutter based mobile application. The mobile app aims to enable a mobile first, offline first user experience for millions of users worldwide who have limited access to internet or a computer.

Roadmap

Currently the application is published by @nikunjdk at https://play.google.com/store/apps/details?id=org.freecodecamp. Our goal is to republish this as native application. We invite you to join us in bringing our vision to fruition.

Contributing

We are working on the contribution docs for this repository, meanwhile you can come say "hi" in our chat room here: https://chat.freecodecamp.org/channel/contributors

Project Board: https://github.com/orgs/freeCodeCamp/projects/15

Comments
  • fix: UI change to the side drawer

    fix: UI change to the side drawer

    The UI of the side drawer has been improved to match the rest of the app The Background Matches the color of the app now. The Side Drawer doesn't take up the entire width of the screen like before How it looks now: (https://user-images.githubusercontent.com/55798225/145781702-d8ff325e-35d8-4296-898c-a236eff997b8.jpg)

    Checklist:

    Closes #108

    status: waiting review 
    opened by Rishab-ms 20
  • fix: remove unused duration property

    fix: remove unused duration property

    Checklist:

    Hey @Nirajn2311, mostly this just defines and fixes up types, but duration doesn't seem to exist in the feed, so I dropped it from the Episode model. This felt pretty serious, so I thought I'd create the PR as is so you could take a look.

    opened by ojeytonwilliams 7
  • Radio buttons are not getting checked for each completed excercises.

    Radio buttons are not getting checked for each completed excercises.

    The Android application not showing completed radio button.

    IMG_20211226_101507.jpg

    As shown in the image the radio buttons are not checked even though I completed those exercises. From desktop version everything is fine.

    Android app version - 2.0.4

    Additional context

    wontfix 
    opened by NagendraDevara 7
  • feat: newsfeed

    feat: newsfeed

    Makes it possible to view an infinity feed with the articles of freecodecamp.

    • [x] Think of a better way to load the article feed
    • [x] Make it so articles get loaded inside the app, not in the browser.
    • [x] find a way to style the retrieved article, without showing a webview.
    • [x] optimize the HTML view
    • [x] Be able to bookmark articles for offline users.

    Ref: #13

    More...

    opened by Sembauke 6
  • Auth & User Settings

    Auth & User Settings

    As a user I want to be able to:

    • [x] Login using freeCodeCamp via OAuth 2.0
    • [x] View my profile & progress on the web app.
    • [ ] Update my profile and user settings.
    • [ ] Delete my account.
    type: feature request 
    opened by raisedadead 5
  • moved variables outside build() method

    moved variables outside build() method

    Checklist:

    variable -

    Having the views and titles variables inside the build() method is a side effect and causes unnecessary variable calls.

    I have moved the views and titles variables outside the build() method, and made them static const.

    IndexedStack -

    I have warped the body Widgets inside IndexedStack which caches the children widgets state and prevents loading Widget in every time the BottomNavigationBar changes.

    opened by mehade369 4
  • Give more information about the .env file.

    Give more information about the .env file.

    Give more information about the .env file.

    I think it would be good to add in the "Getting Started" section of the README.md more information about the .env file. If we explain to people how to install and work on a flutter project, it would be normal to explain to them what is the environment in which this project works (databases, auth, etc.)

    type: feature request help wanted 
    opened by bricekk 3
  • Improve the UI of the progress bar in podcast episode view

    Improve the UI of the progress bar in podcast episode view

    Currently the progress bar works but during the initial few seconds the ball doesn't move from the left end. This may confuse users as to whether the progress bar is working or not.

    Here's a link with an attempt to fix it but since no progress was being made we reverted back.

    type: bug help wanted 
    opened by Nirajn2311 3
  • refactor: fix lint issues in routes

    refactor: fix lint issues in routes

    Hi again @Nirajn2311 Another day, another bit of refactoring!

    This time I stopped because I wasn't sure how you wanted to handle missing Podcasts or Episodes. I just made it throw, for now, to keep TypeScript happy.

    opened by ojeytonwilliams 3
  • feat: fcc theme

    feat: fcc theme

    You do not longer need to add the white color to text as it is set to default now. There are also default: background colors, app-bar colors, navigation-bar colors, button colors and more.

    This means that it will require less time to style widgets/pages

    opened by Sembauke 3
  • Accessibility tips for the first/next release

    Accessibility tips for the first/next release

    • [ ] - Active interactions. Ensure that all active interactions do something. Any button that can be pushed should do something when pushed. For example, if you have a no-op callback for an onPressed event, change it to show a SnackBar on the screen explaining which control you just pushed.

    • [ ] - Screen reader testing. The screen reader should be able to describe all controls on the page when you tap on them, and the descriptions should be intelligible. Test your app with TalkBack (Android) and VoiceOver (iOS).

    • [ ] - Contrast ratios. We encourage you to have a contrast ratio of at least 4.5:1 between controls or text and the background,

    • [ ] - with the exception of disabled components. Images should also be vetted for sufficient contrast.

    • [ ] - Context switching. Nothing should change the user’s context automatically while typing in information. Generally, the widgets should avoid changing the user’s context without some sort of confirmation action.

    • [ ] - Tappable targets. All tappable targets should be at least 48x48 pixels.

    • [ ] - Errors. Important actions should be able to be undone. In fields that show errors, suggest a correction if possible.

    • [ ] - Color vision deficiency testing. Controls should be usable and legible in colorblind and grayscale modes.

    • [ ] - Scale factors. The UI should remain legible and usable at very large scale factors for text size and display scaling.

    type: feature request 
    opened by Sembauke 3
  • Keyboard Won't Popup

    Keyboard Won't Popup

    Describe the bug When I click on the text box my keyboard does not pop-up

    To Reproduce Tap on sign up. Tap on type box to enter email above send code to email.

    Expected behavior Your keyboard should popup so you may type.

    Screenshots Screen_Recording_20220917_094855

    Smartphone (please complete the following information):

    • Device: Samsung Galaxy A53 5G SM-A536U
    • OS: Android 12 One UI 4.1
    • App 1.1.0
    type: bug 
    opened by DeMoN100 0
  • fix(deps): update dependency com.android.tools.build:gradle to v7.3.0

    fix(deps): update dependency com.android.tools.build:gradle to v7.3.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | com.android.tools.build:gradle (source) | 7.2.2 -> 7.3.0 | age | adoption | passing | confidence |


    Configuration

    πŸ“… Schedule: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled due to failing status checks.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    renovate 
    opened by renovate[bot] 0
  • fix(deps): update dependency mongoose to v6.6.1

    fix(deps): update dependency mongoose to v6.6.1

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | mongoose (source) | 6.6.0 -> 6.6.1 | age | adoption | passing | confidence |


    Release Notes

    Automattic/mongoose

    v6.6.1

    Compare Source

    ==================


    Configuration

    πŸ“… Schedule: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    renovate 
    opened by renovate[bot] 0
  • chore(deps): update dependency nodemon to v2.0.20

    chore(deps): update dependency nodemon to v2.0.20

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | nodemon (source) | 2.0.19 -> 2.0.20 | age | adoption | passing | confidence |


    Release Notes

    remy/nodemon

    v2.0.20

    Compare Source

    Bug Fixes
    • remove postinstall script (e099e91)

    Configuration

    πŸ“… Schedule: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    renovate 
    opened by renovate[bot] 0
  • chore(deps): update dependency eslint to v8.23.1

    chore(deps): update dependency eslint to v8.23.1

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | eslint (source) | 8.23.0 -> 8.23.1 | age | adoption | passing | confidence |


    Release Notes

    eslint/eslint

    v8.23.1

    Compare Source

    Bug Fixes

    Documentation

    Chores


    Configuration

    πŸ“… Schedule: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).

    🚦 Automerge: Enabled.

    β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    renovate 
    opened by renovate[bot] 0
Releases(v2.2.1)
  • v2.2.1(Aug 17, 2022)

    What's Changed

    • fix: only fetch user when logged in by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/467
    • feat: highlighted challenge header by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/468
    • feat: highlighted instruction button when open by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/469
    • fix: pane ui by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/470
    • feat: instructions panel by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/481
    • chore(api): reduce container size by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/479
    • fix: log in flow by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/478
    • fix: enable dev wall again by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/499
    • fix: flutter errors learn by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/493
    • feat: multi file editing by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/498
    • feat: hints panel by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/488
    • chore: update docs and sample.env by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/486
    • fix: updated the UI of the progress bar in podcast by @Dexters-Hub in https://github.com/freeCodeCamp/mobile/pull/509
    • fix: make dropdown expanded by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/502
    • feat: better block ui by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/508
    • feat: pass panel by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/513
    • chore(api): create api commands at root level by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/480
    • feat: hide appbar button by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/507
    • feat: faster file loading by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/515
    • feat: drawer improvements and privacy page by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/520
    • chore: update to version 2.2.1 by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/525

    New Contributors

    • @Dexters-Hub made their first contribution in https://github.com/freeCodeCamp/mobile/pull/509

    Full Changelog: https://github.com/freeCodeCamp/mobile/compare/v2.2.0...v2.2.1

    Source code(tar.gz)
    Source code(zip)
  • v2.2.0(Jul 13, 2022)

    What's Changed

    • feat: pre-commit hook by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/420
    • chore: remove empty file by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/430
    • chore: update flutter version in actions by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/432
    • feat: podcast ui by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/398
    • fix: learn superblocks for new API version by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/436
    • chore: update chat to Discord by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/448
    • fix: progressbar minimun width by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/435
    • fix: coderadio pause/play button alignment by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/447
    • feat: new learn ui by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/450
    • fix: dont show forum by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/462
    • feat: one audio service handler by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/429
    • chore: release 2.2.0 by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/463

    Full Changelog: https://github.com/freeCodeCamp/mobile/compare/v2.1.7...v2.2.0

    Source code(tar.gz)
    Source code(zip)
  • v2.1.7(Jun 20, 2022)

    What's Changed

    • fix: news tests by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/355
    • fix: make user model future by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/357
    • feat: login stream by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/366
    • chore(models): update models by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/368
    • chore(docs): remove old q1 plans by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/367
    • feat: profile component by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/356
    • chore: remove old auth view by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/375
    • feat: update podcasts loading time by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/322
    • fix: podcast lint errors by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/377
    • fix(actions): rename workflow name by @raisedadead in https://github.com/freeCodeCamp/mobile/pull/376
    • fix(actions): update steps to run from correct directory by @raisedadead in https://github.com/freeCodeCamp/mobile/pull/378
    • fix(api): remove unused build command by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/379
    • feat: learn front-end by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/263
    • fix: re-enable development wall by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/391
    • chore(ci): update flutter version to 2.10.x by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/392
    • feat: introduce new fcc fonts by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/380
    • feat: make mobile ready for version 3 by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/393
    • chore(app): update lockfile by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/395
    • fix(app): analyze errors by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/396
    • feat(app): replace and upgrade packages by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/399
    • fix(tests): scroll controller error in app test by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/408
    • fix: improve news readability by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/394
    • feat: build the dev wall by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/411
    • release(app): v2.1.7+20107 by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/412

    New Contributors

    • @dependabot made their first contribution in https://github.com/freeCodeCamp/mobile/pull/410

    Full Changelog: https://github.com/freeCodeCamp/mobile/compare/v2.1.6...v2.1.7

    Source code(tar.gz)
    Source code(zip)
  • v2.1.6(May 13, 2022)

    What's Changed

    • chore(renovate): use common global config by @raisedadead in https://github.com/freeCodeCamp/mobile/pull/293
    • chore: enable linting of the api by @ojeytonwilliams in https://github.com/freeCodeCamp/mobile/pull/292
    • refactor: fix lint issues in routes by @ojeytonwilliams in https://github.com/freeCodeCamp/mobile/pull/291
    • fix: lint issues for routes.ts by @ojeytonwilliams in https://github.com/freeCodeCamp/mobile/pull/301
    • feat(api): deployment configuration by @raisedadead in https://github.com/freeCodeCamp/mobile/pull/290
    • fix: update license to 2022 by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/302
    • feat: zoom in with image by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/300
    • feat: test in workflow by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/320
    • clean: remove news log statements by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/321
    • chore: added declaration text to drawer_widget by @Michelphoenix98 in https://github.com/freeCodeCamp/mobile/pull/323
    • fix: make image width consistent on author profile by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/333
    • feat: better article header by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/335
    • fix: dispose scrollcontrollers when leaving article by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/349
    • feat: authentication by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/310
    • feat: global user model by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/350
    • feat: fix dio bug and add interceptors for dev by @Nirajn2311 in https://github.com/freeCodeCamp/mobile/pull/352
    • chore: update version to 2.1.6 by @Sembauke in https://github.com/freeCodeCamp/mobile/pull/343

    New Contributors

    • @ojeytonwilliams made their first contribution in https://github.com/freeCodeCamp/mobile/pull/255
    • @Michelphoenix98 made their first contribution in https://github.com/freeCodeCamp/mobile/pull/323

    Full Changelog: https://github.com/freeCodeCamp/mobile/compare/v1.1.0...v2.1.6

    Source code(tar.gz)
    Source code(zip)
Owner
freeCodeCamp.org
Learn to code for free with millions of other people around the world
freeCodeCamp.org
Sharik is an open-source, cross-platform solution for sharing files via Wi-Fi or Mobile Hotspot

Share files across devices with Sharik! It works with Wi-Fi connection or Tethering (Wi-Fi Hotspot). No internet connection needed. Contributing Feel

Mark Motliuk 751 Sep 19, 2022
Drishti is an open-source cross-platform mobile application project at Incubate Nepal that incorporates Machine Learning and Artificial Intelligence

Drishti is an open-source cross-platform mobile application project at Incubate Nepal that incorporates Machine Learning and Artificial Intelligence to help visually impaired people recognize different currency bills and perform daily cash transactions more effectively. We plan to expand Drishti to other applications like Short Text and Document Reading in the future.

Drishti Nepal 22 Aug 8, 2022
WalletConnect is an open source protocol for connecting decentralised applications to mobile wallets with QR code scanning or deep linking.

WalletConnect is an open source protocol for connecting decentralised applications to mobile wallets with QR code scanning or deep linking. A user can

Tomas Verhelst 70 Sep 21, 2022
Note app is open-source notes app for Android & ios. It is built with Dart on top of Google's Flutter Framework.

Note App ✍?? Note App & SqfLite &GetX [MVC pattern] ????‍?? Note app is open-source notes app for Android & ios. It is built with Dart on top of Googl

null 23 Sep 20, 2022
Easy to use open source Hub πŸ•ΈοΈ to control your smart devices from one app.

CyBear Jinni Hub Welcome! This repository is in charge of controlling smart devices and is part of the CyBear Jinni Smart Home system. The software is

CyBear Jinni 21 Aug 12, 2022
Easy to use open source Hub πŸ•ΈοΈ to control your smart devices from one app.

CyBear Jinni Hub Welcome! This repository is in charge of controlling smart devices and is part of the CyBear Jinni Smart Home system. The software is

CyBear Jinni 13 Jul 22, 2021
Open source password generator app for Android and iOS

Parole is an open-source, free, and cross-platform service that is intended to make people secure on the internet ecosystem. Parole excels to build up

Shivam Yadav 1 Oct 19, 2021
Open Source app to view Free resources available online.

University Open Source app to view Free resources available online. The resources would be condesed into roadmaps provided by mentors skilled in their

Aditya Thakur 23 Sep 3, 2022
Routinger is a task scheduler app that is made to make you a better person at no extra cost. The code is open-source. Dart language and Flutter framework are used extensively.

Routinger This is a simple app that will allow you to schedule your tasks, create a simple to-do, and also make recurring tasks. The app ends you noti

Routinger 14 Mar 3, 2022
Y2D : A open-source YouTube Downloader App built in Flutter

Y2D : A open-source YouTube Downloader App built in Flutter [TOC] Download Download Link : ARM 32-bit ARM 64-bit x86 64-bit Features Download YouTube

Romjan D. Hossain 48 Aug 27, 2022
An open source task manager (todo list) app, developed using Dart language and Flutter framework.

Tasker An open source task manager (todo list) app, developed using Dart language and Flutter framework. Screenrecords     Screenshots                

Erfan Rahmati 6 Aug 31, 2022
An open-source pubic transport app πŸšŒπŸš‰

This is an open-source public transport app packed with cool features ?? Try it out Platform Link ?? iOS Get on Testflight ?? Android Download the lat

GaΓ«tan 26 Aug 7, 2022
Spacex-Go Flutter App - Simple yet powerful, open-source SpaceX launch tracker

SpaceX GO- Rwema App! Simple yet powerful, open-source SpaceX launch tracker About the project The purpose of this project is

Rwema 30 Jul 21, 2022
Open source app to book EDISU study rooms.

Open Edisu A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if th

Antonio Spadaro 8 Jun 30, 2022
Flutter Music Player - First Open Source Flutter based material design music player with audio plugin to play local music files.

Flutter Music Player First Open Source Flutter based Beautiful Material Design Music Player(Online Radio will be added soon.) Demo App Play Store BETA

Pawan Kumar 1.5k Sep 19, 2022
Simple yet powerful, open-source SpaceX launch tracker.

SpaceX GO! Simple yet powerful, open-source SpaceX launch tracker About the project The purpose of this project is to develop the ultimate SpaceX expe

JesΓΊs RodrΓ­guez 746 Sep 23, 2022
An open source encrypted peer-to-peer system. Own data, own privacy.

An open source encrypted peer-to-peer system. Own data, own privacy.

Cymple Tech 438 Sep 14, 2022
Nakama is an open-source server designed to power modern games and apps

Nakama is an open-source server designed to power modern games and apps. Features include user accounts, chat, social, matchmaker, realtime multiplayer, and much more.

Allan Nava 76 Sep 22, 2022