Git Product home page Git Product logo

scholarx-backend-v1's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

scholarx-backend-v1's Issues

Saving users to the Database

Is your feature request related to a problem? Please describe.
Authenticated users need to be persisted in the Database.

Describe the solution you'd like

http
    .oauth2Login(oauth2 -> oauth2
        .userInfoEndpoint(userInfo -> userInfo
            .userService(this.oauth2UserService())
            ...
        )
    );

The above configuration needs to be added with custom user service(oauth2UserService). Which then will get the profile data(Email address and profile-pic link are not included. These are provided through different APIs). and persist in the table.

Describe alternatives you've considered
N/A

Additional context
N/A

ignore issue

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Remove api module

Is your feature request related to a problem? Please describe.
Since we decided to use 2 repos for frontend and backendapi module can be removed from the project

Describe the solution you'd like
Refactor and move pom files and other files in api module to the root, with the necessary pom changes.

Describe alternatives you've considered
N/A

Additional context
N/A

Mentee API : Get logged in mentee's details

Is your feature request related to a problem? Please describe.
Logged in user if he/she is a mentee should be able to get his/her mentee profile.

Describe the solution you'd like
API should identify the mentee through mentorId and userId and return the relavant mentee
API path : /mentors/{id}/mentee
Headers: user-id
Response: Mentee object

Describe alternatives you've considered
N/A

Additional context
https://sef.discourse.group/t/implementing-the-relevant-views-for-mentees-in-a-program/198/25

Common API : Get a mentor by id

Is your feature request related to a problem? Please describe.
We need an endpoint to get a mentor by the Mentor Id

Describe the solution you'd like
Add the endpoint with unit tests.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
N/A

Additional context
Add any other context or screenshots about the feature request here.
N/A

Add a JSON response payload to DELETE endpoints

Is your feature request related to a problem? Please describe.
We need to have a json response payload for all DELETE API endpoints for frontend usages

Describe the solution you'd like
Add a JSON response payload

Describe alternatives you've considered
N/A

Additional context
N/A

Admin API : GET mentees of a mentor

Is your feature request related to a problem? Please describe.
Admins should be able to get mentees of a mentor

Describe the solution you'd like
API should identify the mentor through programId and userId and return the relevant mentees.
API path : admin/programs/{id}/mentor/mentees
Query param: state(list of states): null, PENDING, APPROVED(mentee states)
Headers: user-id
Response: Mentee object

Describe alternatives you've considered
N/A

Additional context
N/A

Update methods for program state creation & edition

Describe the bug
The state should not send as a parameter when creating/editing the state of a program.

To Reproduce
Steps to reproduce the behavior:

  1. Create a request to add/edit state APIs with a state param
  2. Program is created or updated by the passed param.

Expected behavior

  • When creating a state should always be CREATED
  • When editing the state, it should be changed to the next existing one.

Screenshots
N/A

Desktop (please complete the following information):

  • OS: macOS
  • Browser Chrome
  • Version 81

Additional context
Update the test cases.

Add test cases for repository methods

Is your feature request related to a problem? Please describe.
Add test cases for Repository methods of JPA.

Describe the solution you'd like

  1. Setup in-memory DB(H2) for the testing profile.
  2. Add tests to mock custom query methods in the repository.
  3. Update the Travis build to match the system requirements of the changes in the profile.

Describe alternatives you've considered
N/A

Additional context
PR: #27 should be merged beforehand.

Adding user authentication and login

Is your feature request related to a problem? Please describe.
Users need method to register themselves for the platform

Describe the solution you'd like
An SSO is more suitable. The most suitable provider is Linkedin.

Describe alternatives you've considered
N/A

Additional context
N/A

Add pull request template

Is your feature request related to a problem?
No pull request template.

Describe the solution you'd like
Add the same PR template we use in SEF-site.

Change the program state MENTEE_APPLY to MENTEE_APPLICATION

Is your feature request related to a problem? Please describe.
It'll be more readable if we can change the program state MENTEE_APPLY to MENTEE_APPLICATION

Describe the solution you'd like
Update the ENUM

Describe alternatives you've considered
N/A

Additional context
N/A

Add database configurations and the creation script

Is your feature request related to a problem? Please describe.
Database support has to be added to persist data of the platform

Describe the solution you'd like
MySQL configuration for the SpringBoot have to be added with the script to create the database

Describe alternatives you've considered
N/A

Additional context
N/A

Program API(Admin): update a program

Is your feature request related to a problem? Please describe.
API with the ability to edit an existing program.

Describe the solution you'd like
API should update a Program

  • Only the Program-specific data is should be updated(title, headline, etc.). Except for program state
  • Children of the Program should not be updated.

Describe alternatives you've considered
N/A

Additional context
Add test cases for the API.

Common API : Get all Mentors

Is your feature request related to a problem? Please describe.
We need an endpoint to list all Mentors

Describe the solution you'd like
Add the endpoint with unit tests

Describe alternatives you've considered
N/A

Additional context
N/A

Infinite loop in GET mentors API

Describe the bug
An infinite loop is running when /program/{id}/mentors/ endpoint is called.

To Reproduce
Steps to reproduce the behavior:

  1. Check the endpoint
  2. See error

Expected behavior
Load the data without bugs

Screenshots
Screenshot from 2020-10-03 22-40-46

Desktop (please complete the following information):

  • OS: [e.g. iOS] Ubuntu 19.04
  • Browser [e.g. chrome, safari] N/A
  • Version [e.g. 22] N/A

Additional context
N/A

Move unit tests of admin APIs to a different directory

Is your feature request related to a problem? Please describe.
Unit tests of common APIs and user APIs are mixed up in the same directory ( controller/)

Describe the solution you'd like
Move the admin APIs to a seperate directory (controller/admin)

Describe alternatives you've considered
N/A

Additional context
@YohanAvishke wdyt?

Mentor API : GET logged in user's mentor details

Is your feature request related to a problem? Please describe.
Logged in user if he/she is a mentor should be able to get his/her mentor profile.

Describe the solution you'd like
API should identify the mentor through programId and userId and return the relavant mentor
API path : /programs{id}/mentor
Headers: user-id
Response: Mentor object

{
    "id": 1,
    "profile": {
      "id": 1,
      "uid": "",
      "email": "",
      "firstName": "",
      "lastName": "",
      "imageUrl": "",
      "linkedinUrl": "",
      "headline": ""
    },
    "program": {
      "id": 1,
      "title": "",
      "headline": "",
      "imageUrl": "",
      "landingPageUrl": "",
      "state": ""
    },
    "state": "",
    "application": "",
    "prerequisites": ""
  }

Describe alternatives you've considered
N/A

Additional context
N/A

Add Swagger configurations

Is your feature request related to a problem? Please describe.
Swagger documentation is preferred to ease the work in the APIs.

Describe the solution you'd like
Swagger and Swagger UI configurations need to be added through a @configuration class

Describe alternatives you've considered
N/A

Additional context
N/A

Add OAuth headers to controller test cases

Is your feature request related to a problem? Please describe.
Test cases will fail with 403 if the authentication headers are not present.

Describe the solution you'd like

  1. Add new test cases for unauthorized requests
  2. Mock the OAuth authentication and update the headers

Describe alternatives you've considered
N/A

Additional context
This issue should be solved immediately after merging PR: #13

Integrate CI/CD

Is your feature request related to a problem? Please describe.
The project has to be automatically built and deployed when commits are made to the master branch

Describe the solution you'd like
Configure Travis build

Configure application properties

Is your feature request related to a problem? Please describe.
Add necessary configs(database, api, etc.) to the application properties

Describe the solution you'd like
Edit application.properties file with necessary configurations.

Describe alternatives you've considered
N/A

Additional context
N/A

PR template is not working

Describe the bug
When creating a PR Github doesn't locate the PR template

To Reproduce
Steps to reproduce the behavior:

  1. Go to Pull requests
  2. Click on New Pull request
  3. Scroll down to comment section
  4. See error

Expected behavior
A template to add data should be available

Screenshots
image

Desktop (please complete the following information):

  • OS: macOS Catalina 10.15.4
  • Browser: Chrome
  • Version 84

Smartphone (please complete the following information):
N/A

Additional context
Add any other context about the problem here.

Validate the body of create program endpoint

Is your feature request related to a problem? Please describe.
The request body isn’t validated.
ex: throws 500 when a not null field is not available in the body

Describe the solution you'd like
Ex:
If the landing page URL or image URL is not in the body, it adds a null value for them. It should return a bad request.

Describe alternatives you've considered
N/A

Additional context
N/A

Initiate the project

Is your feature request related to a problem? Please describe.
While we are having discussions on this project we need to create a basic structure for the project.

Describe the solution you'd like

  • Initiate a maven project with two modules for both frontend and backend.
  • Initiate a SpringBoot project on the backend module
  • Add a basic user control with spring security

Generating database using JPA annotations

Is your feature request related to a problem? Please describe.
As discussed in this thread we have to generate tables using JPA

Describe the solution you'd like
Add the suitable annotations to create the tables and relationships

Describe alternatives you've considered
N/A

Additional context
N/A

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.