Skip to content

Instantly share code, notes, and snippets.

@EndlessHypnosis
Last active November 1, 2017 13:10
Show Gist options
  • Select an option

  • Save EndlessHypnosis/ce85b766b1193cc48d41b13e0b60851a to your computer and use it in GitHub Desktop.

Select an option

Save EndlessHypnosis/ce85b766b1193cc48d41b13e0b60851a to your computer and use it in GitHub Desktop.

Capstone Project - Specification

Nick Svetnicka - Mod 4 - FE1705

Project Name: YouCompleteMe

Overview

You Complete Me connects students in a mentor/apprentice setup. This project is focuses around the community at Turing, and the features/functionality lean heavily in supporting its needs. At the same time, efforts have been made to allow the application to take on a more generalized approach, that could be used to connect not only students, but anyone in need of a mentoring/apprentice scheduling app.

Features

User Authentication Using slack api oauth, or as a fallback login/password, the application will require registration.

Slack API Integration still investigating access rights Aside from the in-app notifications planned, slack api could be used to notify users of upcoming pairings, or when a pairing was established. This would likely involve swapping the authentication to using slack oauth.

Roles Currently there are only 2 roles planned, which is simply whether the user wants to be flagged as a mentor, in which case they would be granted the ability to accept pairings, and any other mentor-only functionality. Without the mentor role, the user is treated as an apprentice, which is the base role for all new users.

Notifications The react-notification-system will be used to provide on-screen notices when a pairing has been created/cancelled, feedback has been received, or for an upcoming pairing session.

Find a Mentor The primary function of the app...to connect students with mentors, on a temporary (hourly) basis.

  • Current Skill Level: The application will ask the apprentice several questions (1-5 rating) to determine skillset across the stack in order to help determine what mentor would be the best pair.

  • Focus of Pairing: Do you have a bug? Do you want to ask generalized questions about the architecture/project setup/getting the project running? Do you want to simply do some code-review? All these areas will be available for selection by the apprentice when requesting time with the mentor.

Feedback System Upon completion of a pairing session, the application will prompt the apprentice and mentor for feedback ranging from 'did the pairing session still happen' to submitting named/anonymous feedback to either person.

Ask a Question Possibly not part of the MVP (dependent on time), another form of assistance would come from being able to submit a question directly through the application, allowing any mentor to answer it. There would be a simple code editor and commenting system built around this to support simple syntax/code questions without forming an official pairing.

Routes

User Account

  • /login
  • /logout
  • /register
  • /profile

Find a Match

  • /skills
  • /match
  • /feedback
  • /questions

Technology Stack

Front-End

  • React, Redux, Router
  • Webpack
  • redux-promise as middleware
  • React Notification System

Back-End

  • Firebase used for User Auth: Basic email/password registration
  • PostgreSQL
  • Express.js
  • Knex.js + Bookshelf.js

Remote APIs:

  • Possibly a calendar API for generating the front end calendar display

Biggest Challenges

Building the UI and event creation functionality for a calendar could be a big undertaking, depending on what 3rd party packages/libraries exist for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment