Giter Club home page Giter Club logo

anitab-org / mentorship-backend Goto Github PK

View Code? Open in Web Editor NEW
195.0 195.0 448.0 1.93 MB

Mentorship System is an application that matches women in tech to mentor each other, on career development, through 1:1 relations during a certain period of time. This is the backend of this system.

Home Page: https://mentorship-backend-temp.herokuapp.com/

License: GNU General Public License v3.0

Python 99.30% Shell 0.31% HTML 0.25% Dockerfile 0.04% Mako 0.10% Procfile 0.01%
backend flask flask-restx flask-sqlalchemy hacktoberfest openapi python swagger

mentorship-backend's People

Contributors

17sushmita avatar aaishpra avatar aakankshaagr avatar aayush-hub avatar allcontributors[bot] avatar asawesome07 avatar bartekpacia avatar codesankalp avatar daksha-aeer avatar dependabot-preview[bot] avatar dependabot[bot] avatar devkapilbansal avatar diananova avatar dilu9218 avatar faznan3nazer avatar flacode avatar ilyamaier avatar isabelcosta avatar iulianav avatar kushalbeniwal avatar m-murad avatar mtreacy002 avatar naveennvrgup avatar prashanthpuneriya avatar sankha555 avatar satya7289 avatar sejalcodes avatar stergiossozos avatar sumit-badsara avatar vj-codes avatar

Stargazers

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

Watchers

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

mentorship-backend's Issues

Update README with project description

Description

As a new contributor,
I need to see a README with project's mission and description,
so that I can learn about the Mentorship System project.

Acceptance Criteria

Update

  • Updated README with Mentorship System project description (what is all about, the motivation, ...)
  • Link to Systers #mentorship-system channel for further details
  • Define proper text to describe the project

Definition of Done

  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

30 min

Add base tests for first features

Description

As a developer,
I need to test my code,
so that I can check my code for bugs.

There should be some tests at least so that a developer can have an idea of how to test the separate modules.

Mocks

Acceptance Criteria

Update [Required]

  • tests folder

Definition of Done

  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

2 hours

Add extra field to Cancel API indicating reason of cancellation

Description

As a user,
I need to explain mentorship relation cancellation reason,
so that I can help improving the system with proper feedback.

Acceptance Criteria

Update

  • Optional text field, e.g.: cancellation_reason, to API request data of Cancel API and Mentorship relation database model
  • Add and fix tests for this
  • Document properly on Swagger UI

Definition of Done

  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

3 hours

User is able to register without terms and conditions checked

Description

A user is able to register with the field terms_and_conditions_checked set to false, in the POST data

Acceptance Criteria

Update

  • Return an error message when the terms_and_conditions_checked is set to false
  • Don't let the user be registered into the DB without this checked

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

30 minutes

500 error when updating username to an already used username

Describe the bug
When I use the /PUT User api - and update a username to an already taken username, it returns a 500 Internal Server error

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'http://systers-mentorship-dev.eu-central-1.elasticbeanstalk.com/'
  2. Click on 'PUT /user' Swagger entry
  3. Enter your Bearer Token, and in the payload - include: "username": "isabel" - which is the name of an already created user
  4. See error

Expected behavior
return a more descriptive error message than: 500

{
  "message": "Internal Server Error"
}

In the register user api call - if you use an existing username - you get a 400 error with this message:

{
  "message": "A user with that username already exists"
}

That might be better than returning a 500 Internal Server Error

Screenshots
n/a

Desktop (please complete the following information):
n/a

Smartphone (please complete the following information):
n/a

Additional context
n/a

Show proper error message when user fails to send access token

Description

As a consumer of the API,
I need receive a proper error message when failing to send JWT,
so that I can be aware of how to use the authenticated API.

Currently, when we try to use a restricted API without sending the token, we receive a 500 Internal Server Error and the app throws an exception. The proper message should be something like:

{
      "message": "This resource requires an Authorization header field: JWT <token>."
}

Acceptance Criteria

Update

  • Overide JWT error handler to return proper error message instead of showing 500 internal server error

Definition of Done

  • PR should be sent to the gsoc18-code branch
  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

5 hours

Create the Mentorship Relation database model

Description

As a developer,
I need Mentorship Relation (MR) database model,
so that I can create APIs related with Mentorship Relation feature.

Acceptance Criteria

Update

  • Create app/database/mentorship_relation file
  • Create Many to Many relationship between Users and Mentorship Relation
  • Initial Attributes (mentor_id, mentee_id, sender_id, receiver_id, init_date, end_date, notes)
  • Add tests for the MR database model

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

3 hours

Update APIs restricted to verified users to verify if user email is validated

Description

As a developer,
I need to validate that a user has its email verified,
so that I can avoid unauthorized and invalid users to interact with the system.

Acceptance Criteria

Update

  • APIs that require authenticated users should also require that these users have their email verified
  • When a user tries to use a service without its email verified, this user should receive a message indicating that the user has to verify its email
  • A user cannot send a mentorship request to a user that does not its email verified

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

2 hours

Refactor extensions initialization using Application Factory design pattern

Description

As a developer,
I need apply application factory pattern,
so that I can create the app with all extensions initialized with the app, to test the APIs correctly.

Resources:

Acceptance Criteria

Update

  • Create create_app() function to bind the flask extensions to the app object
  • Move extensions to their packages
  • Create some tests for te API to serve as example for future tests

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

4 hours

Mentorship Relation Send Request Quality Assurance

Description

This issue is to test all the test cases in the Mentorship Relation Send Request in the Quality Assurance document below. This issue can be worked by many contributors. Refer this issue when you find a bug in the following test cases.

Test Cases

You can check the below document for test cases.
https://docs.google.com/document/d/1kStdMWK9K93zlsjIFbU2fODE98NK3a4nJGtYtBEyrlo/

Definition of Done

  • At least one test case tested.
  • Approval by 1 mentor.

Estimation

30 minutes for test case (approximation)

Create an API to register a new user.

Description

Create an API using which the user can register on the platform.

  • Required fields: email, username, password, name, security question, security answer, terms and conditions check
  • Error message specifying what is wrong with the POST data. E.g.: if the users do not check terms and conditions, an error message must be returned indicating that the user must have this checked
  • Endpoint: POST /register
  • Password must be saved as a hash, and NOT in plain text

Acceptance Criteria

Update [Required]

  • A new user is able to register on the system.

Definition of Done

  • PR should be sent to the gsoc18-code branch
  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

10 hours

Create an API to reject mentorship relation request

Description

As a mentorship system user,
I need to reject mentorship relations,
so that I can refuse a relation.

Acceptance Criteria

Update

  • Create API resource to reject a relationship
  • Create DAO function to reject a relationship
  • Define error cases and appropriate messages

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

3 hours

Fix project structure to run project on terminal

Description

As a developer,
I need to have a proper structure,
so that I can run the project on the terminal.

Acceptance Criteria

Update [Required]

  • Move app/run.py file
  • Update README.md with instructions to setup and run the project
  • Update imports

Definition of Done

  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

1 hour

Send JWT token expiration date along with APIs response

Description

As a developer/consumer,
I need send the JWT token expiry date,
so that I can, be aware of the expiry date when I receive the access_token.

Send the expiry date of the token along with POST /login response.

Current login response structure:

{
      "access_token": "YOUR_TOKEN",
}

New login response structure:

{
      "access_token": "YOUR_TOKEN",
      "expiry": "EXPIRY_DATE_UNIX_TIMESTAMP"
}

Acceptance Criteria

Update

  • Update current to new response returned by the Login API
  • Decide on JSON response structure (discuss on slack's #mentorship-system channel)
  • Update Swagger Documentation file

Definition of Done

  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

4 hours

API for the sender to delete a sent mentorship request

Description

As a developer,
I need a DELETE /mentorship_relation/{id}/delete API,
so that I can delete mentorship requests.

Acceptance Criteria

Update

  • New endpoint/API DELETE /mentorship_relation/{id}/delete
  • DAO function
  • Test for DAO
  • Test for API
  • Conditions: only sender of the request deletes -> undo or give up on sent request

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

3 hours

Create test for app configuration variables

Description

As a developer,
I need test configuration file,
so that I can increase test coverage and make sure configurations are setting themselves correctly.

Acceptance Criteria

Update

  • Create a test for the configuration file

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

20 minutes

Create an API to verify the email ID of new User

Description

Create an API which will be used to send verify the email of a user.

Acceptance Criteria

Update

  • The email is verified using the API

Definition of Done

  • PR should be sent to the gsoc18-code branch
  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

10 hours

Save registration date as a UNIX timestamp

Description

As a developer,
I need receive in the API response the registration date as a UNIX timestamp,
so that I can properly parse the registration date.

Currently, the registration date of a user is saved as a DateTime.
Save it as a Float.

Acceptance Criteria

Update

  • Change the registration date data type from DateTime to Float.
  • Add or Update tests for this
  • Return UNIX timestamp in List Users API response (and others)

Definition of Done

  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

1 hour

Admin Role Quality Assurance

Description

This issue is to test all the test cases in the Assign new admin in the Quality Assurance document below. This issue can be worked by many contributors. Refer this issue when you find a bug in the following test cases.

Test cases

You can check the following document for test cases: Quality Assurance Google Docs

Assign new admin

Service: POST /admin/new

Test Case Outcome
A User which is an Admin, assigns admin role to a non admin user ( both users should have email verified) Success
A User which is not an Admin, assigns admin role to any user (does not matter if the user being assigned is admin or not) Fail
A User which is not an Admin, assigns admin role to itself Fail

Definition of Done

  • At least one test case tested.

Estimation

30 minutes for test case (approximation)

Set a timezone from the deployed server on the corn jobs

Description

As a developer,
I need have control over the timezone used on the cron job used to complete a mentorship relation,
so that I can be sure in what time the cron job does the work of completing the job.

Current deployed server is in eu-central-1 Amazon's region.

Acceptance Criteria

Update

  • Set a timezone to the cron job that completes the mentorship relations instead of using a default

Definition of Done

  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

1 hour

Create an API get a list of all relationship requests

Description

A user should be able to get a list of all the relationship requests. This should be specific to a user.

Acceptance Criteria

Update [Required]

  • Get a list of all previous relationships.
  • Get the current relationship.
  • Get a list of relationship requests. (All three should be different APIs)

Definition of Done

  • PR should be sent to the gsoc18-code branch
  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

10 hours

Create API to get list of relationship requests

Description

As a user,
I need get my mentorship requests,
so that I can choose between them.

  • Get a list of relationship requests.

  • Related to #11

Acceptance Criteria

Update

  • Create DAO function to interact with MentorshipRelation database model
  • Create tests for DAO objects
  • API lists request which the Mentor/Mentee hasn't agreed on yet

Definition of Done

  • PR should be sent to the gsoc18-code branch
  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

2 hours

Create background job to complete a mentorship relation

Description

As a user,
I need to know when a mentorship relation has ended,
so that I can apply to other relations.

Create a "cron job" to detect when an accepted relation has ended, and then set it to complete state.

Acceptance Criteria

Update

  • Create a background job that checks if any relationship with the state ACCEPTED has passed its end date and set relation state to COMPLETED

Definition of Done

  • All of the required items are completed.
  • Approval by 1 mentor.
  • PR should be sent to the gsoc18-code branch

Estimation

10 hours

Create an API to cancel a mentorship relation request

Description

As a mentorship system user,
I need to cancel a mentorship relation request,
so that I can undo a previously sent request.

Acceptance Criteria

Update

  • Create API resource to cancel a relationship request
  • Create DAO function to cancel a relationship
  • Define error cases and appropriate messages
  • Define what it means to cancel

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

3 hours

Add title, organization photo url

Description

As a user,
I need know more information about a potential mentor or mentee,
so that I can find them and check their online presence.

Acceptance Criteria

Update

  • Add Title/Role/Occupation, Organization/Company to User database model
  • Add or update tests

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

1 hour

Add password security checks

Description

As a user,
I need password security validation,
so that I can be sure that my password is secure.

Add validations that make the user choose strong passwords instead of insecure ones. This validation can be done here and on the frontend.

Acceptance Criteria

Update

  • Add password check to Change Password API
  • Add password check to Register API
  • Create password security validation function

Definition of Done

  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

1 hours

Create an API to accept a mentorship relation request

Description

A user should be able to accept a relationship request that has been sent to him/her.
Also, a user should be able to cancel a request (s)he has previously sent.

Acceptance Criteria

Update

  • Create API to accept a relationship request.
  • Create DAO function to accept a relationship
  • Define error cases and appropriate messages

Definition of Done

  • PR should be sent to the gsoc18-code branch
  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

4 hours

Create API to remove Admin role from a User

Description

As an admin,
I need API to remove an admin,
so that I can remove admin priveledges from another admin.

This will change the boolean is_admin for the admin user
New API: POST /admin/remove

Acceptance Criteria

Update [Required]

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

3 hours

Create script commands for flask

Description

As a developer,
I need flask script commands,
so that I can configure the app before running it.

This can be used to create the first user admin without the need to use the full app and verify the email.

Functions to create:

  • create admin
  • run tests
  • run test coverage
  • run the app
  • export swagger and postman json
  • TBD

Acceptance Criteria

Update

  • Create manage.py script with the functions described above

Definition of Done

  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

2 hours

Create an API to login in the system.

Description

Create an API so that a user who has verified his/her email is able to log in. On successful login, the API should return a JWT which will be required to make further requests.

Acceptance Criteria

Update [Required]

  • User is able to login.
  • A JWT is sent to the user

Definition of Done

  • PR should be sent to the gsoc18-code branch
  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

10 hours

Add travis.yml.

Description

As a developer,
I need to run tests on Travis infrastructure,
so that I can the PR can be verified before being merged.

Acceptance Criteria

Update [Required]

  • Add travis.yml
  • Run tests on travis

Definition of Done

  • All of the required items are completed.
  • Approval by 1 mentor.

Replace flask-jwt for flask-jwt-extended extension

Description

As a developer,
I need more flexibility using jwt libraries,
so that I can customize how the login works (response handling and request verifications).

Remove flask-jwt usage and use flask-jwt-extended which provides more flexibility to implement login using JWT.

Acceptance Criteria

Update

  • Restrict login to email (dependant on email verification being merged)
  • Implement login using flask-jwt-extended
  • Return previously defined response which contains the expiry timestamp and the access_token
  • Document properly on Swagger (use Bearer instead of JWT at the authorization field)
  • Return proper error messages (for lack of authorization fields, wrong email, and username). Related to #50

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

3 hours

Requesting a user profile, from a user that does not exist returns wrong JSON

Description

The method GET /users/{user_id} returns a wrong response.
Current response:

{
    "id": null,
    "name": null,
    "username": null,
    "email": null
}

Approriate response:

{
    "message": "That user does not exist."
}

Acceptance Criteria

Update

  • Validate this value at the API level
  • User should not be inserted into the database if this is unchecked

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

1 hour

Add support for using environment variables

Description

As a developer,
I need load environment variables,
so that I can protect sensitive app data and load app configuration.

In this way, we can avoid hardcoded app configurations.

Acceptance Criteria

Update [Required]

  • Remove configuration selection inside of run.py file
  • Define environment file and base variables (e.g.: APP_SETTINGS, SECRET_KEY, ...)

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

1 hour

Create Tasks database model, DAO and API list method

Description

As a developer,
I need to create Task database model,
so that I can start creating the APIs.

Anyone in the current mentorship relation, mentor or mentee, can create, delete tasks and mark them as achievements.

Acceptance Criteria

Update

  • Create the database model
  • Create tests for the database model
  • Create DAO list function
  • Create tests for the DAO function
  • Create API to list tasks
  • Create tests for API list endpoint

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch
  • Approval by 1 mentor.

Estimation

4 hours

Return proper error while failing to update a User's profile

Description

As reported in issue #83, when a User tries to update its username to an already existing one, the server responds with 500 - Internal Server Error. This happens because the Database model is aware that the username should be unique, hence it fails at saving the User new data.

This will require extra checks in DAO function that updates the User profile.

Acceptance Criteria

Update

  • Return proper error message when a user tries to update the username to an already existing one

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

1 hours

Increase JWT token expiration time

Description

JWT (JSON Web Tokens) token should have a higher time expiration value.
It is expiring too early.

Acceptance Criteria

Update

  • JWT configurations should be changed
  • JWT token expiration changes to 1 week

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

1 hour

Add a gitignore file to repo.

Description

Add the .gitignore file. The latest version of the file can be found here

Acceptance Criteria

Update [Required]

  • .gitignore file is added to the repo

Definition of Done

  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

1 hours

Create an API to edit User profile

Description

Create an API which enables a user to edit his/her profile.

API:

  • POST /user = Update my profile
  • GET /user = Checking my profile

Editable fields:

  • bio; username; skills; interests; slack_username; occupation; need_mentoring; available_to_mentor; location; social_media_links; resume_url; photo_url.

Acceptance Criteria

Update [Required]

  • User is able to update items in the profile.

Definition of Done

  • PR should be sent to the gsoc18-code branch
  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

10 hours

User Registration Quality Assurance

Description

This issue is to test all the test cases in the User Registration Testing in the Quality Assurance document below. This issue can be worked by many contributors. Refer this issue when you find a bug in the following test cases.

Test cases

You can check the following document for test cases: Quality Assurance Google Docs

User Registration

Service: POST /register

Test Case Outcome
Register a User with all fields present in the request body and valid (not empty, username and email are unique, email is a valid one) ones Success
Register a User with terms and conditions checked (=True) Success
Register User without sending Authorization Header with token Success
Register a User with terms and conditions unchecked (=False) Fail
Register a User with username and email from an already existing User Fail
Register a User with one of the these fields missing from the request body: name, username, email, terms_and_conditions, password Fail
Register a User with one of the these fields empty from the request body: name, username, email, terms_and_conditions, password Fail
Register a User with invalid email (invalid does not respect e.g.: {A-Z, a-z, 0-9, _,-}@{A-Z, a-z, 0-9}.{A-Z, a-z, 0-9}) Fail

Definition of Done

  • At least one test case tested.

Estimation

30 minutes for test case (approximation)

Validate email regex

Description

As a developer,
I need email validation,
so that I can avoid users with invalid emails.

Acceptance Criteria

Update

  • Validate email before inserting new user
  • Return proper error message, if email is invalid

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

30 minutes

Create an API to get all users

Description

Create an API that will allow any user to get a list of all the users who have verified their email ids.

  • GET /users => Get all users
  • GET /users/verified OR GET /users?verified=1 => Get verified users with new endpoint or query param

Acceptance Criteria

Update [Required]

  • List of all users is retrived.

Enhancement to Update [Optional]

  • List of all users unpaired users is retrived.
  • List of all user in a mentor/mentee relationship is retrived.

Definition of Done

  • PR should be sent to the gsoc18-code branch
  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

10 hours

Create an API to send a request.

Description

Create an API so that a user can send another user a request mentor/mentee relationship request.

Acceptance Criteria

Update

  • A user is able to send a request to any user who is not in a mentor/mentee relationship.
  • Define constraints before actually creating the data model

Definition of Done

  • PR should be sent to the gsoc18-code branch
  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

10 hours

Restrict GET /users API to authenticated users

Description

Currently, for testing purposes, the GET /users API is open. Now that this is deployed this should be only accessible for authenticated users

Acceptance Criteria

Update

  • Make GET /users restricted to authenticated users
  • Add a test to make sure unauthenticated users cannot access this API

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

1 hour

Update PR template to add check item to update requirement.txt (if needed)

Description

As a developer,
I need to update the requirements.txt every time I use a new package,
so that I can install all the correct packages to work with the backend.

Task: Add check item to Pull Request template checklist, so that the requirements.txt is always updated when needed.

Acceptance Criteria

Update

  • Update PR template with new check item

Definition of Done

  • All of the required items are completed.
  • Submit PR to develop branch.
  • Approval by 1 mentor.

Estimation

30 minutes

Create an API to send verification email newly registered users.

Description

Create an API to send verification email newly registered users.

Acceptance Criteria

Update

  • Verification email is sent.
  • Create API resource.
  • Create DAO functions.
  • Update Swagger API documentation (UI and json file).

Definition of Done

  • PR should be sent to the gsoc18-code branch
  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

10 hours

Use Amazon Relational Database Service (Amazon RDS) for persistence.

Description

As a developer
I need to use the Amazon Relational Database Service (Amazon RDS),
so that we can have DB persistence even after redeploying the app.

Acceptance Criteria

Update [Required]

  • DB persistence even after redeploying the app.
  • All environments have an Amazon RDS database.

Definition of Done

  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

4 hours

Add update postman and swagger items to PR template

Description

As a contributor,
I need update the swagger and postman when creating or updating new APIs,
so that I can maintain the project.

Refer to @m-murad's comment

Acceptance Criteria

Update

  • Pull request template file

Definition of Done

  • All of the required items are completed.
  • Approval by 1 mentor.

Estimation

5 minutes

Add Swagger documentation for Login API

Description

As a developer,
I need Swagger Login API documentation,
so that I can test the API and mantain the project.

Acceptance Criteria

Update

  • Update endpoint /auth to /login
  • Update Swagger documentation to include Login API (automatically done by flask-jwt)
  • Update Swagger documentation to ask for headers regarding authorization tokens
  • Update postman.json on docs folder (update testing login)
  • Add swagger.json on docs folder

Definition of Done

  • All of the required items are completed.
  • PR should be sent to the gsoc18-code branch.
  • Approval by 1 mentor.

Estimation

2 hours

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.