Skip to content

Cross-platform mobile client for Mentorship System

License

Notifications You must be signed in to change notification settings

mtreacy002/mentorship-flutter

 
 

Repository files navigation

Mentorship Client

Cross-platform client for Systers' mentorship system, written in Flutter.

demo image

How was it created?

I really liked Systers' Mentorship System, wanted to try Flutter and had some free time during Christmas.

Rationale

Mentorship System aims to be as inclusive as possible for everyone. It should apply to user's mobile operating system, too :)

Work status

Application is a high-fidelity copy of the Android version. It has all essential features implemented, though some may not work perfectly.

What works? Almost everything.

  • Login and Registration
  • Home page
  • Profile page
  • Relation Page
  • Members page
  • Changing password

What is missing? (in comparison to Mentorship Android)

  • RelationPage: updating availableToMentor and needsMentoring status doesn't work
  • About screen is basically About dialog. It's very simple, more info should be added.

Occasional UI bugs may occur – in this case, please create an issue.

Overview

  • App tries to follow Clean Architecure guidelines. Logic is separated into 4 layers:
    • UI
    • BLoC
    • Repository
    • Service
  • App uses BLoC pattern extensively
  • To communicate with API, Chopper is used
  • To save JWT token, Flutter Secure Storage is used
  • If you find something in code that looks a bit odd, it might be some useful extension method from lib/extensions

Web support

Flutter for Web is currently at technical preview stage. To test this functionality, I created a separate branch. I successfully ran this app in Chrome.

web example here

It's neither stable nor works smoothly (yet), but hey, it works.

Unfortunately I was unable to make requests to the hosted dev server because apparently it has CORS disabled. Fortunately, it is at least possible to connect to the server running on localhost :)

To use web version of this app with your local server:

  1. Make these small changes to your local webserver to enable CORS
  2. Run local devserver

Future?

I'd love Systers to accept this project as one of theirs. I do realize it requires better documentation and has to be polished a bit, but I really believe these problems are easy to solve. My dream? I'll be incredibly happy, for example, if students in next year's Google Code-in will continue its development, improve it and polish the codebase.

Contact us

Feel free to reach out to the maintainers and our community on AnitaB.org Open Source Zulip. If you are interested in participating in discussions related to this project, we have a dedicated stream for this project #mentorship-system, where you can ask your doubts and interact with our community.

About

Cross-platform mobile client for Mentorship System

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Dart 96.8%
  • Ruby 2.6%
  • Other 0.6%