Challenge Overview

Project Overview

Mentor ME is a responsive mobile app with the objective at assisting underachieving high school students – particularly those at risk of becoming school dropouts. Mentor ME enables, empowers and inspires new talent by building networking relationships from a list of mentors that assist you sharing ideas, guidance, learning and connecting with other leaders.

The propose of Mentor ME is be more effective, efficiency at mentorship programs and to increase the coverage of current programs where younger adults can have access to volunteer mentors to get guidance and motivation to graduate. The core of Mentor ME is the match between the Mentee interests and opportunities to Mentor Skill.

The whole project consists of two parts:

The mentor and mentee Android application.

A set of REST-based services to support data access and updates for the mobile applications.

Competition Task Overview

The purpose of this challenge is to follow the provided architecture and implement the 1st set of backend services, which should include Registration, Login, Forgotten Password Services, Parental Notification, Mentor Service, Mentee Service and User Service.

Detailed Requirements:

1. Please implement the exception classes designated in the “Exceptions Class Diagram” from our architecture challenge.

2. Everything from “Entities Class Diagram“ required to implement the services outlined below are in scope.

3. The following from the “Services Class Diagram” are in scope (both interfaces and implementations):

3.1. GenericService

3.2. UserService

3.3. MenteeService

3.4. MentorService

3.5. LookupService

3.6. InstitutionService

3.7. The corresponding specification classes

4. The following from the “REST API Class Diagram” are in scope:

4.1. The corresponding controllers for each service listed above

4.2. Everything in the com.livingprogress.mentorme.security package excluding anything for social login / social platform downloads.  We’re only going to be implementing basic authentication for the initial version of the application.  Please remove any social logos, links or buttons from the pages that you implement.

5.  Here is the list of endpoints corresponding to the Services defined above:  https://docs.google.com/spreadsheets/d/1Rs7N6Fv1wr-3dQ1TN-zslRATBjLyxBhdYHEoW5uJLQE/edit?usp=sharing

6.  There are two new fields that need to be added to the Data Model based on recent requirement updates:

Mentee:  FacebookUrl VARCHAR(256)

Mentor:  LinkedInUrl VARCHAR(256)

General Notes:

1. Please follow the provided architecture to implement the services, make sure you go through all documents included in the architecture including the ERD and Application Design Specification.

2. Please properly document all code.

3. Please provide sql script to create database, create tables, drop tables, etc… In addition, you need to provide a separate sql script to populate test data into the database so we can test the api with meaningful data.

4. Please provide ORM mapping file(s)

5. Please provide a new Swagger doc that covers the implemented API, you can use the existing swagger as reference.  You’ll need to provide greater detail in the Swagger doc (e.g. what search parameters are being supported).

6.  Please provide Unit Tests for your code.

Technology Overview

Java 8

Jetty (we’re going to use an embedded server rather than an Application Container described in the architecture docs)

JPA

MySQL

Spring Boot

Swagger

REST

Final Submission Guidelines

Submission Deliverables

1. Code that covers all requirements listed above.

2. Detailed guide explaining how to configure, deploy and test the code. You must provide details on how to verify the REST API.

3. Other supporting files like sql script, swagger doc, etc.

Submission Guidelines

For each member, the final submission should be uploaded via the challenge detail page on topcoder.com.

ELIGIBLE EVENTS:

2017 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30055306