-
Notifications
You must be signed in to change notification settings - Fork 449
Tech Stack
Summary
- Language: Python 3.x
- Framework: Flask
- Flask Extensions: Flask-RESTPlus, Flask-SQLAlchemy, Flask-JWT-Extended, Flask-Mail
- Hosting Service: Amazon Web Services (AWS)
- Database: Relational type
To be continued ... Since this project had to be completed during the
Flask-RESTPlus is the core of this backend, The REST API is built using this flask extension. The main advantage is that it supports Swagger Documentation.
You can know more about how to use Swagger in this Wiki page.
Flask-JWT-Extended provides great support for JSON Web Tokens (JWT) based Authentication. It provides a lot of flexibility
You can learn more here [NEEDS PAGE EXPLAINING THIS] about how User Authentication is done in this project.
Initially we started using Flask-JWT, but as the development progressed we started having challenges to solve that required a more flexible library. One of the issues that made us change to Flask-jwt-extended was the need for extra verifications while login in a User into the system, specifically verifying if the user had the email verified. After looking into flask-jwt source code and docs to see if this could be done easily the GSoC student concluded that it would require extra work by having to override some functions, as done before, and that this would overcomplicate code. Ultimately, it was agreed with the mentors to use flask-jwt-extended that provided more flexibility to implement the Login API. The official documentation of flask-jwt-extended shows an example of the basic usage of the extension, where it shows the flexibility to verify extra fields and properties and provide custom error messages.
AWS is being used since other previous projects were using AWS as well, such as systers/portal. Although other projects in the community use Heroku.
Documentation
- Project Requirements
- Setup and Install
- Development
- Database Design
- Initial Docs
- Main Concepts
- Future ideas
- OSH Designs
GSoC Students
- 2018 - Isabel Costa
- GSoC All Final Reports