Cross-platform client for Mentorship System

Overview

Cross-platform client for Mentorship System

Branch Travis
develop Build Status

Mentorship System is an application that allows women in tech to mentor each other, on career development topics, through 1:1 relations for a certain period of time.

This is the client app for the Mentorship System backend. It's written in the Flutter framework.

Work in progress

App running on Android and iOS devices

Purpose

AnitaB.org aims to be as inclusive as possible for everyone. It should apply to user's mobile operating system, too :) That's why we decided to use Flutter to deliver a high-quality app for everybody – Android, iOS, and web users.

From the technical point of view, having one codebase for all platforms will make adding new featuresand bug fixes much faster.

Contributing

Please read our Contributing guidelines, Code of Conduct and Reporting Guidelines.

If you have any questions or simply want to interact with our community, come and join us at out AnitaB.org Open Source Zulip. We have a dedicated stream for this project #mentorship-system.

Overview

  • App tries to follow Clean Architecture guidelines. Logic is separated into 4 layers:
    • UI
    • BLoC
    • Repository
    • Service
  • App uses BLoC pattern extensively
  • To communicate with the 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

Setup Instructions

In order to setup the project locally, setup instructions have been defined here

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 server

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.

Comments
  • Update README with how to setup and run flutter instructions.

    Update README with how to setup and run flutter instructions.

    Description

    As a developer,, I need to make sure contributors can setup and run flutter on their local machine so they can start contributing to the project,

    Mocks

    N/A

    Acceptance Criteria

    • [ ] Update README.md with setup instructions

    Definition of Done

    • [ ] All of the required items are completed.
    • [ ] Approval by 1 mentor.

    Estimation

    1 hour

    Category: Documentation/Training First Timers Only 
    opened by mtreacy002 36
  • Internal Server error while logging in

    Internal Server error while logging in

    Describe the bug As a user, When I attempt to login for the mentorship app it throws an internal server error and doesn't proceed further.

    To Reproduce Steps to reproduce the behavior:

    1. Go to login page
    2. Click on login after entering test credentials
    3. See error snackbar toast

    Expected behavior Remove the error and proceed with login process to signin with the app. Screenshots Screenshot_2020-05-01-21-04-05-55_92746fe779a9c2c81c5c767d4a402904

    Smartphone: Android 9.0 Oppo 2020

    Type: Bug Status: Available 
    opened by HaripriyaB 32
  • Add links to Terms, Policy and CoC on Sign Up screen

    Add links to Terms, Policy and CoC on Sign Up screen

    Description

    As a user of the system, I need to have links to terms and conditions on Register screen so that I can be aware of Terms of use, Code of Conduct and Privacy Policy.

    On Registration Screen we need to have a proper text with the Terms and Conditions check box.

    Text:

    "By checking this box, I affirm that I have read and accept to be bound by the AnitaB.org Code of Conduct, Terms, and Privacy Policy. Further, I consent to the use of my information for the stated purpose."

    Links to add:

    Code of Conduct: https://ghc.anitab.org/code-of-conduct/ Terms of use: https://anitab.org/terms-of-use/ Privacy Policy: https://anitab.org/privacy-policy/

    Screenshots of the issue

    Android version:

    image

    Flutter current version:

    image

    Acceptance Criteria

    Update [Required]

    • [ ] Add links to Terms and Conditions, Code of Conduct and Privacy Policy on Sign Up screen

    Definition of Done

    • [ ] All of the required items are completed.
    • [x] Approval by 1 mentor.

    Estimation

    🤷‍♀️

    Type: Enhancement First Timers Only Category: Coding Category: User Interface 
    opened by isabelcosta 30
  • feat: Add Pagination to Members Page

    feat: Add Pagination to Members Page

    Description

    Add Pagination to load the members list on members page

    Fixes #85

    Flutter Channel:

    • [x] I have used the Flutter Beta channel on my local machine

    Type of Change:

    Delete irrelevant options.

    • Code

    Code/Quality Assurance Only

    • Bug fix (non-breaking change which fixes an issue)

    How Has This Been Tested?

    Physical Device. Steps : Go to members page and scroll down too see if pagination works as required.

    ezgif com-video-to-gif

    Checklist:

    Delete irrelevant options.

    • [x] My PR follows the style guidelines of this project
    • [x] I have performed a self-review of my own code or materials
    • [x] I have commented my code or provided relevant documentation, particularly in hard-to-understand areas

    Code/Quality Assurance Only

    • [x] My changes generate no new warnings
    Category: Coding Status: Ready to Merge 
    opened by Techno-Disaster 28
  • Add a cancel button to the “change password” alert box.

    Add a cancel button to the “change password” alert box.

    Description

    As a user, I need a cancel button on change password alert box which can take me back if I prefer not to change my password.

    Screenshots of the issue

    Screenshot_2020-05-13-23-26-44-77_92746fe779a9c2c81c5c767d4a402904

    Acceptance Criteria

    • [ ] Include a cancel button left to submit button

    Definition of Done

    • [ ] All of the required items are completed.
    • [x] Approval by 1 mentor.

    Estimation

    1 hour

    Type: Enhancement First Timers Only Category: User Interface 
    opened by HaripriyaB 26
  • feat: add confirm password field and show passwords feature to change password popUp

    feat: add confirm password field and show passwords feature to change password popUp

    Description

    Add confirm password field with validation and toggle password visibility button on the change password popUp

    Fixes #76

    Flutter Channel:

    • [ ] I have used the Flutter Beta channel on my local machine

    Type of Change:

    • Code

    Code/Quality Assurance Only

    • New feature (non-breaking change which adds functionality pre-approved by mentors)

    How Has This Been Tested?

    Physical Device Steps:

    • Go to the Settings page by clicking on the icon at the top right corner of the homepage.
    • Click on the Change Password button to see whether the feature works properly or not flutter_01

    Checklist:

    Delete irrelevant options.

    • [x] My PR follows the style guidelines of this project
    • [x] I have performed a self-review of my own code or materials
    • [x] I have commented on my code or provided relevant documentation, particularly in hard-to-understand areas

    Code/Quality Assurance Only

    • [x] My changes generate no new warnings
    • [ ] My PR currently breaks something (fix or feature that would cause existing functionality to not work as expected)
    • [ ] Any dependent changes have been published in downstream modules
    Category: Coding Category: User Interface Status: Ready to Merge 
    opened by bharat-1809 22
  • MembersPage: add search feature

    MembersPage: add search feature

    Is your feature request related to a problem? Currently the searching functionality in the MembersPage doesn't work.

    Describe the solution you'd like Adding the search feature like in the Android app.

    A final solution should preferably use BLoC pattern (like the rest of the app). I'm not quite sure how it would look like, so the person who will be doing it: implement it so that it will just work and we will iterate on it & improve.

    Type: Enhancement 
    opened by bartekpacia 19
  • Make separate sections for tasks to do and tasks completed

    Make separate sections for tasks to do and tasks completed

    Is your feature request related to a problem? Please describe. The tasks section is not organized to show completed tasks and yet to complete tasks.

    Describe the solution you'd like There should be two sections/drop sections to show to-do tasks and completed tasks separately. Just like in Android version of Mentorship.

    Additional context Android version:

    Flutter version:

    Type: Enhancement Category: Coding 
    opened by HaripriyaB 18
  • Finish ProfilePage implementation

    Finish ProfilePage implementation

    Is your feature request related to a problem? Please describe. Currently changing available to mentor and needs mentoring on the RelationPage doesn't have any effect.

    demo

    Describe the solution you'd like I'd like this to work. I'd love this to work and be nicely coded :)

    Additional context I remember I had some issues with this while speed-coding this app during GCI and finally forgot to finish this :) That's why it isn't already implemented.

    Type: Bug Help Wanted 
    opened by bartekpacia 18
  • Add docs for testing team

    Add docs for testing team

    Recently a PR was merged which was supposed to ease out testing apks, without Android Studio, but most people are unaware about this. We need to create a doc which tells more about this feature. More info here

    Category: Documentation/Training 
    opened by Techno-Disaster 16
  • feat: add loading indicator when changing password and saving profile

    feat: add loading indicator when changing password and saving profile

    Description

    Add loading indicator on screen to help user understand what's happening. If a user has a slow internet connection, the changing password request can take long and without a loading indicator he/she might think the apps stuck. Loading indicators will tell that the process is currently going on
    Fixes #67 Fixes #94

    Flutter Channel:

    • [x] I have used the Flutter Beta channel on my local machine

    Type of Change:

    Delete irrelevant options.

    • User Interface

    Code/Quality Assurance Only

    • New feature (non-breaking change which adds functionality pre-approved by mentors)

    How Has This Been Tested?

    Physical device. Check gif below ezgif com-video-to-gif

    Checklist:

    Delete irrelevant options.

    • [x] My PR follows the style guidelines of this project
    • [x] I have performed a self-review of my own code or materials
    • [x] I have commented my code or provided relevant documentation, particularly in hard-to-understand areas

    Code/Quality Assurance Only

    • [x] My changes generate no new warnings
    Status: Needs Review 
    opened by Techno-Disaster 16
  • migrate to GitHub actions

    migrate to GitHub actions

    Is your feature request related to a problem? Please describe. Currently we use Github actions to build on every PR and create a artifact where the testing team can download it to test the changes. We also use travis CI for building a apk and pushing it to the apk branch after every push to the develop branch.

    Describe the solution you'd like We should remove travis ci as we have exceded the quota and migrate that pipeline to github actions

    Status: Available Category: Quality Assurance 
    opened by Techno-Disaster 1
  • Register page confirm password doesn't work

    Register page confirm password doesn't work

    Describe the bug The confirm password function of the register page doesn't seem to work. Even if the password and confirm password don't match, the confirmation email is sent.

    To Reproduce Steps to reproduce the behavior:

    1. Go to the signup page
    2. Fill the detail. Enter different passwords in the password and confirm password fields.
    3. Click signup
    4. The confirmation email is sent

    Expected behavior If the password and confirm password don't match it should show a warning to the user.

    Screenshots If applicable, add screenshots to help explain your problem.

    Smartphone (please complete the following information):

    • Device: samsung m21
    • OS: Android

    Additional context Maybe its just me. Please check.

    First Timers Only Status: Available 
    opened by KevalPrajapati 5
  • Added regex based email validation

    Added regex based email validation

    Description

    Added regex email validation. Fixes #149

    Flutter Channel:

    • [X] I have used the Flutter Beta channel on my local machine

    Type of Change:

    Delete irrelevant options.

    • Code

    Code/Quality Assurance Only

    • Bug fix (non-breaking change which fixes an issue)

    How Has This Been Tested?

    The following cases are tested *Following are invalid cases

    • Missing @ sign and domain
    • Missing username
    • Two @ sign
    • Leading or trailing dot in address
    • And other invalid emails

    invalid email invalid

    valid email valid

    Checklist:

    Delete irrelevant options.

    • [X] My PR follows the style guidelines of this project
    • [X] I have performed a self-review of my own code or materials

    Code/Quality Assurance Only

    • [X] My changes generate no new warnings
    opened by KevalPrajapati 12
  • feat: Social Logins Implementation

    feat: Social Logins Implementation

    Description

    Added Google Sign In to the app. Was not able to implement Apple Sign In as it requires setting up a paid apple developers account. This change depends on PR 719 of mentorship-backend which is not merged yet.Therefore, merged PR 719's code with the forked mentorship-backend repo and used it as backend.

    For setting up google sign in for android: 1.) Create a google console project. 2.) Create OAuth client id for web app(Use this client id in backend) and android(by putting in correct application id and sha1 code). 3.) Under res/values/strings.xml put

     <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="default_web_client_id">{Web app Client id goes here}</string>
    </resources>
    

    (As you need a backend client id for extracting idToken after google sign in, refer documentation) . 4.) Make sure you use the same web app client id in backend.

    For iOS: I have not tested the code in iOS as a mac is not available to me.

    Fixes #137 (Not completely)

    Flutter Channel:

    • [x] I have used the Flutter Beta channel on my local machine

    Type of Change:

    • Code

    Code/Quality Assurance Only

    • This change requires a documentation update (software upgrade on readme file)
    • New feature (non-breaking change which adds functionality pre-approved by mentors)

    How Has This Been Tested?

    Sign In: signin

    Logout: logout

    Google Sign In works as it should but breaks change password feature.

    Checklist:

    Delete irrelevant options.

    • [X] My PR follows the style guidelines of this project
    • [X] I have performed a self-review of my own code or materials
    • [ ] I have commented my code or provided relevant documentation, particularly in hard-to-understand areas
    • [ ] I have made corresponding changes to the documentation
    • [ ] Any dependent changes have been merged

    Code/Quality Assurance Only

    • [X] My changes generate no new warnings
    • [X] My PR currently breaks something (fix or feature that would cause existing functionality to not work as expected)
    • [ ] Any dependent changes have been published in downstream modules
    opened by PaRaDoX50 2
  • Regex Based Validation for Email and Password during Registration

    Regex Based Validation for Email and Password during Registration

    Is your feature request related to a problem? Please describe. Currently during Registration, Email and Password are checked only to ensure they are non empty values. Proper validation must be done to ensure they are valid values.

    Describe the solution you'd like Regex Based Validation

    Describe alternatives you've considered N/A

    Additional context Mentorship Issue

    opened by amlannandy 5
  • fix: github action

    fix: github action

    Description

    Github deprecated some of its commands, specifically the setenv and addPath. This PR updates the deps to fix this

    How Has This Been Tested?

    Tested here

    Checklist:

    Delete irrelevant options.

    • [x] My PR follows the style guidelines of this project
    • [x] I have performed a self-review of my own code or materials

    Code/Quality Assurance Only

    • [x] My changes generate no new warnings
    Category: Quality Assurance Type: Testing 
    opened by Techno-Disaster 1
Releases(v1.0.2)
Owner
AnitaB.org Open Source
Women transform technology. Technology transforms the world. Join us at Zulip - http://anitab-org.zulipchat.com
AnitaB.org Open Source
A cross-platform Fediverse client for micro-blogging services written in Flutter/Dart.

Kaiteki A 快適 (kaiteki) Fediverse client for microblogging instances, made with Flutter and Dart. Currently, Kaiteki is still in a proof-of-concept/alp

Kaiteki 141 Jan 5, 2023
A libre, cross-platform client to browse Medium.

nedium A libre, cross-platform client to browse Medium ?? This a video showcase. Features ✨ : Browse without an account. Search for posts, users, tags

Clone Conflict 6 Jan 15, 2022
Open source cross-platform client for popular imageboards: 4chan.org and 2ch.hk

iChan (iOS) and Zchan (Android) Open source cross-platform client for popular im

null 50 Dec 31, 2022
Cross-Platform Google Drive client with encryption support.

arthurmorgan A Cross-Platform Google Drive client with encryption support. Features implemented Google OAuth2 Upload Files Download Single Files Uploa

Washiul Alam Sohan 45 Aug 14, 2023
A Dart client for the NATS messaging system. Design to use with Dart and Flutter.

Dart-NATS A Dart client for the NATS messaging system. Design to use with Dart and flutter. Flutter Web Support by WebSocket client.connect(Uri.parse(

Chart Chongcharoen 32 Nov 18, 2022
A platform similar to iFood that makes it easier for the consumers to find a list of generators with solar plates system available for rent

iEnergy App A platform similar to iFood that makes it easier for the consumers to find a list of generators with solar plates system available for ren

André Diogo 1 Jun 7, 2022
A comprehensive guide on learning how to code cross platform mobile applications with the Flutter framework, from the ground up.

✳️ The Ultimate Guide to App Development with Flutter ✳️ A complete and comprehensive guide to learning Flutter with explanations, screenshots, tips,

Anthony 243 Jan 1, 2023
Cross Platform mobile application built using Flutter for a group project

splitz A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this i

Utkarsh Omer 0 Jul 30, 2022
A cross-platform flutter package to convert your links into rich beautiful previews.

Link Preview Generator A cross-platform flutter package to convert your links into rich beautiful previews. This package is inspired from Any Link Pre

Pranav Bedre 12 Oct 21, 2022
Open-source, cross-platform, hassle-free file sharing with AES-256 encryption made with Flutter & Dart.

Odin ⚡ Open source easy file sharing for everyone. ⚡ Cross-platform hassle-free file sharing with AES-256 encryption made with Flutter & Dart. Getting

Odin 111 Dec 22, 2022
Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.

Flutter permission_handler plugin The Flutter permission_handler plugin is build following the federated plugin architecture. A detailed explanation o

Baseflow 1.7k Dec 31, 2022
Creating cross-platform solution to help keep individuals connected

Back-to-Hue-Frontend Creating cross-platform solution to help keep individuals connected First Draft: No backend Google Maps API, format into desired

Jeevan Prakash 3 Mar 30, 2022
A cross-platform Flutter home workout app that respects your privacy. THIS IS A GITLAB MIRROR, file issues and contribute there.

Feeel Feeel is an open-source workout app for doing simple at-home exercises. This is a rewrite of the original app in Flutter, to make development ea

null 27 Dec 26, 2022
A cross platform mobile application developed in flutter

A cross platform mobile application ?? developed in flutter to keep track of dai

Melwin Lobo 1 Dec 16, 2021
A cross-platform Flutter widget for displaying websites. Optional navigation buttons.

Overview Gives you a cross-platform Flutter widget for displaying websites and other web content. Licensed under the Apache License 2.0. Links Github

Dint 11 Oct 23, 2022
This repo contains a collection of permission related Flutter plugins which can be used to request permissions to access device resources in a cross-platform way.

Flutter Permission Plugins Deprecation Notice This repository has been replaced by the Flutter permission_handler plugin and will not longer be mainta

Baseflow 51 Dec 13, 2021
A Cross-Platform Wisdom Generator built with Flutter

Wisgen ?? A small Cross-Platform Wisdom Generator, built using Flutter and a combination of external APIs This Wisdom Generator combines random advice

Sebastian Faust 31 Dec 6, 2022
Cross-platform flutter plugin for reading and writing NFC tags. Not maintained anymore - not looking for new maintainer, fork instead.

nfc_in_flutter NFC in Flutter is a plugin for reading and writing NFC tags in Flutter. It works on both Android and iOS with a simple stream interface

Andi Semler 113 Sep 28, 2022
Flutter-for-Wordpress-App - Cross platform wordpress news app built with Flutter and WP REST API

Flutter for Wordpress A flutter app for a wordpress websites with clean and elegant design. This app is available in free and pro version. You can cho

Madhav Poudel 243 Dec 23, 2022