-
Notifications
You must be signed in to change notification settings - Fork 0
Initial discussions
Copied from Team discussions -- Notes from John Wyles
Hi @AlisonYoon @stiffneckjim @katjad - here are the notes I made from last night. Was great to catch up with you and looking forward to getting started on this!
Based on our discussions at the Hack Night on Tuesday 22 January we’ve developed an outline for the CodeHub Mentorships platform.
In brief, the first iteration of the platform will be focussed on taking the existing processes involved in the mentorship programme and automating parts of it where relevant in order to reduce the administrative overhead.
The application will be comprised two main parts. The first is a public-facing set of pages that will provide details of what a CodeHub mentorship is all about. This information is designed to help set expectations for both mentors and mentees and hopefully ensure that only those who are serious about pursing a mentorship actually apply.
The second part of the application is member-only and requires a user account to access. There will be three types of user in the application:
- Admins (those responsible for managing mentorships)
- Mentors
- Mentees
Admin accounts will be created as required - there will likely only be a few of these.
Both Mentor and Mentee account will be created only after someone has completed registration. The registration form for these two user types will be based on the existing one created in Google Forms.
Initially we will keep the ‘human element’ in registrations meaning that registrations must be approved by an administrator to make sure we don’t end up with spam profiles etc.
There was some discussion about whether to allow registrations on a rolling basis or whether to accept registrations as part of a quarterly cohort. There is interest in trying both approaches so one of the questions on both Mentor and Mentee registration forms will ask if they would prefer to be paired with whoever is currently available (and a reasonable match) or whether they wish to wait until the next mentoring meet up so that they can meet multiple potential mentorship partners face to face in one go.
Once a Mentor or Mentee has registered, they will be matched with potential mentorship partners based on a score that is computed from the crossover of skills/experience first and time/availability second. This matchmaking algorithm will mostly likely not be perfect so initially at least it will be an aid for Admins when suggesting pairings.
If a prospective mentor or mentee wishes to be paired outside of an official cohort, an admin can use the match score to suggest a match. We can then, through the application, invite both halves of the mentorship to a code hub event (Hack Night or Workshop Wednesdays) to make introductions.
For registrants who wish to be part of an official cohort, Admins can compile a shortlist of potential matches for each person (maybe one or two recommendations) and make those introductions at an official mentoring meetup once a quarter.
It is currently expected that the mentorships will be largely self-managed but we can provide one or two basic tools on the application to keep things on track e.g. a simple agreement outlining the basic expectations of the mentorship that both parties can agree to and an ‘in-confidence’ way for either party to contact CodeHub in case things are not going to plan and they need to let CodeHub organisers know.
Notes from
Before we can get going with this project we'll need to make a few decisions about the technologies that we're going to use. Based on discussions at the last hack night we seem to be focussing in on a particular 'stack' but I wanted to open this out to discussion before we land on anything final.
The languages/frameworks being proposed are:
Laravel - a very popular PHP application framework.
React - a (fairly ubiquitous!) reactive JavaScript framework
InertiaJS - a library that enables us to get the best of both of the frameworks above (more on this below)
TailwindCSS - a utility-first CSS library that allows for very rapid and scalable CSS development
The thinking behind this stack is as follows:
- We'll use Laravel to handle the bulk of our application code including authentication and routing.
- InertiaJS allows us to use server-side auth and routing whilst also composing our view layer in React - thus getting a Single Page Application (SPA) feel without having to work with client side authentication and routing.
- React seems to be a common framework amongst those signed on to this project so far so we'll build our views in React
- The people behind TailwindCSS are bring out a UI library based on the framework in the next few weeks. This set of pre built components will allow us to build a very slick looking UI in next to no time but with the added benefit that we can customise it however we want.
Other tools:
To help keep code consistent we could sign up for a free StyleCI account which will basically lint our code for us when we try to merge a pull request.
Similarly we can use a continuous integration platform such as Travis CI to ensure that pull requests don't break tests that we've written
Hosting
Perhaps a little early to think about this but if we do go with Laravel then we can run the site on a small Digital Ocean droplet that is provisioned using a service called Laravel Forge. I'm fine using my own Forge account for this and happy to invite other team members to that account as required.
Worth noting that the above are only suggestions at this stage. They're all based on my own preferences and experiences but I've also suggested them because they all have top notch documentation and learning materials associated with them.
If anyone has other suggestions or ideas do let me know! We'll maybe give it until the next Hack Night then make some decisions and get the ball rolling