Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mentorship System GSoC 2018

Mentorship System GSoC 2018

This is the final demonstration of my work during Google Summer of Code 2018 with Systers Open Source organization. I share my work, my learnings, and the overall incredible experience.

Avatar for Isabel Costa

Isabel Costa

August 12, 2018
Tweet

More Decks by Isabel Costa

Other Decks in Technology

Transcript

  1. 2 ©2018 AnitaB.org About Me Who am I? • Isabel

    Costa from Portugal Background? • Worked 2 years on Android and I’m a MSc Telecommunications and Informatics Engineering graduate Previous Experience with Open Source? • Almost none before GSoC • 1 PR in November ‘17 HacktoberFest, 1 PR for another org on GSoC and then started in March on Systers Open Source with more than PRs
  2. 3 ©2018 AnitaB.org About the Team Student • Isabel Costa

    → @isabelcosta Mentors • Murad → @murad • Dilushi Piumwardane → @dil • Roopal Jain → @roopal Admin • May → @may • Code Code Code; Follow proposed timeline for the project; Communicate regularly with mentors and the community; Share project progress; ... • Guide on technical issues and doubts; Help me follow best practises; Review Pull Requests; ... • Bridge between the organization and the team; Helped me getting feedback from potential users; ...
  3. 5 ©2018 AnitaB.org Purpose What is this Mentorship System about?

    • Mentorship System for women in tech to mentor and support each other • Target user/audience: Any Women in Tech, in any stage of the career, of any age, and any social/economic background Why did I propose this project? • I was a mentor before in college • I met some women transitioning careers that asked me for or I offered advice Why I think this important? • Help women who might be switching careers into Tech or are already on it • Provide a safe environment for women in tech to mentor each other on career development topics
  4. 6 ©2018 AnitaB.org Features 1º Coding Phase • Login/Register API

    • Edit/Delete/View/List Users Profile API • Assign Users as Admins 2º Coding Phase • Revoke Admin role | Email Verification (initial send and resend API) • Mentorship Relation arc on Backend (send/accept/reject/delete APIs) • Completion of a relation 3º Coding Phase • Test the backend, find bugs and fix them • Implement Tasks feature on backend • Start Android application (User, Mentorship Relation, Tasks (stretch) arc)
  5. 7 ©2018 AnitaB.org Tech Stack Backend • Python, Flask, MySQL,

    SQLAlchemy • Deployed on Amazon Web Services (AWS) Mobile Application • Android, Kotlin • MVVM, LiveData, ViewModel, RxJava, Retrofit, ConstraintLayout, ... Repositories on GitHub • systers/mentorship-backend • systers/mentorship-android
  6. 10 ©2018 AnitaB.org Accomplishments (1) List of Features: • Registration

    API • Login API • Provide Swagger Documentation • Edit Profile API • List All Users API • See my and other Users’ profile API • Assign a User as an Admin API • Delete my User profile
  7. 11 ©2018 AnitaB.org Accomplishments (2) List of Features: • Send

    Mentorship Relation API • Get all Mentorship Relation API • Email Verification API • Accept/Reject/Cancel mentorship relation API • Revoke Admin role to a User API • Delete Mentorship Request API • Cron job to complete a Mentorship Relation
  8. 12 ©2018 AnitaB.org Demo • Go to live server: http://systers-mentorship-dev.eu-central-1.elasticbeanstalk.com/

    • Register 2 new Users • Login the two users • List Users, to see IDs • Check my User profile • Update their profile to enable mentoring and be mentor features
  9. 13 ©2018 AnitaB.org Demo • Send a Mentorship Request 1

    from User 1 to User 2 • Send a Mentorship Request 2 from User 1 to User 2 • Send a Mentorship Request 3 from User 1 to User 2 • User 2 rejects Mentorship Relation 1 • User 1 deletes Mentorship Relation 2 • User 2 accepts Mentorship Relation 3
  10. 16 ©2018 AnitaB.org Android Demo List of completed Features: •

    Register Screen • Login Screen • Members List Screen • Member Profile Screen • Requests List Screen • Request Detail Screen
  11. 17 ©2018 AnitaB.org Future Development Opportunities Soooo many things! Let's

    summarize … • More features … — Instant Messaging in the app — Schedule Meetings between Members — Report Code of Conduct violations — Relations 1 to many — Tutorial Screen — Slack and Social Media authentication — Shared Resources in a Relation — Gamification for a relation’s achievements and milestones • Build this app using a hybrid solution (e.g.: flutter) and embrace Android and iOS • Web version of the app !! • Integrate with Volunteer Management System (VMS)
  12. 19 ©2018 AnitaB.org Research, Outreach and Training • Studied Material

    Design to design a good UI and UX; • Created UI Prototype feedback Google Docs for potential users to ask questions; • Create a Quality Assurance Google Docs to educate members about the backend; • Hosted Ask Me Anything (AMA) sessions for new contributors; • Promoted the project through a blog post about the Mentorship System idea; • Shared frequent updates on #mentorship-system Slack channel to make the community aware of the state of the project.
  13. 20 ©2018 AnitaB.org Documentation Such an important part of Open

    Source ... • Share publicly User Interface (UI) screens and prototype (on issues, wiki, ...) • Initial Google Docs explaining the proposal for Backend and App features • Taking extensive notes on Meeting Minutes • Organize GitHub Wiki to link all public resources for new contributors • Wrote a blog post about the Mentorship System on Medium • Quality Assurance Google Docs to help members of the community test the backend
  14. 22 ©2018 AnitaB.org How can you contribute to this? Soooo

    many ways! Let's summarize … • Test the backend and the Android application for Quality Assurance purposes and report bugs in issues (if any); • Give feedback on the project (UI prototype, suggesting new features), participate in discussions on Slack; • Suggest improvements on Frontend UI/UX; • Helping others understand the project on Slack or other media channels; • Help developing documentation; • Solving available issues or come up with new ones: — Implement new features; — Fix bugs; — Enhance the project; — Develop tests (improve tests quality and code coverage);
  15. 24 ©2018 AnitaB.org Challenges • I was not comfortable at

    all with a Backend development, since I never implemented one of this extension from scratch • Learning a new framework from ZERO • Looking into Clean Architecture and making decision to go with MVVM • Starting GSoC while finishing thesis • Making the project welcoming for open source contributors • Being aware of my mentors’ timezone • User Interface design is not easy • Reflect every week and write blog posts about it • Balancing GSoC work and all the deadlines (Weekly meeting, Scrums, Blog Posts ...)
  16. 25 ©2018 AnitaB.org Take-Aways • Learned a lot about Open

    Source • Because of this experience I’m now an Open Source enthusiast • Being in a open source community helped me express myself in a community as more than a developer, and I loved it! • I really wanted to have the android application done by the end of GSoC but I learned that to building a good product from scratch takes time • To build a great and useful product, this will need several iterations and feedback • I got to train my blogging skills • Getting out of my comfort zone by learning a total new framework and development paradigm. Initially scary but rewarding!
  17. 26 ©2018 AnitaB.org Overall Experience • Mentors were very present

    never felt alone! • Never felt pressure by my team they were always very comprehensive and welcoming • Liked having the possibility to be part of the community and practising open source as a whole and not just coding • Really liked working on a project I was passionate about • Got liberty and flexibility to learn new things both on Backend and Mobile development • The organization was committed to help us grow personally and professionally • Met incredible students, mentors (not just from my project) and other members! • This was such a healthy environment to be in!
  18. Thank you QUESTIONS? @isabelcosta on Systers OS Slack and GitHub

    @isabelcmdcosta on Medium / LinkedIn / Twitter