Git Product home page Git Product logo

gabberapi's Introduction

I'm Jay Rainey 👋

I build software at the intersection of software engineering and machine learning at Samsung AI Center (SAIC), Cambridge. Previously a postdoc on @ideafast supporting the selection and evaluation of multiple sensing devices in large-scale studies through building data pipelines.

  • 🐍 Using Python daily to develop EDAs, APIs, and other acronyms
  • 📚 Developed Gabber through my PhD research
  • 👐 Want to chat? Let's connect on LinkedIn

Current Stack

Visual Studio Code

Docker

Docker

Python

Reddis

HTML5

CSS3

JavaScript

React Native

Redux

SQL

SQL

Git

gabberapi's People

Contributors

dependabot[bot] avatar jawrainey avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

joseplj

gabberapi's Issues

Add an image when creating a project

When creating a project, it should be possible to upload an image, which will be used to represent the project visually within the mobile application.

Note: This enhancement is in relation to changes in GabberMobile#2.

Capture demographics about users

When users register or a new participant is added (/upload), we must add details of the following as outlined in GabberMobile#12

  1. Which National Society are they a member of?
  2. Their role in the Red Cross Red Crescent
  3. Their Gender
  4. Their age

User registration add language of communication

When creating a new account, we must accept the language chosen by the user, which will require validating that we support that language on the website and applications.

This requires creating a new top-level endpoint (/languages/) that returns the list of supported languages by language-code and their native language:

{
    'en': 'English',
    'it': 'Italiano'
}

Relates to Mobile#4 and Web#2

Move email service from Sendgrid to MailGun

We currently use sendgrid to send emails, however, this requires hosting out templates on their service and emails are often flagged as SPAM. We should move to MailGun and use their REST API to send and receive emails to overcome these issues.

Language spoken during conversation

The project.upload POST endpoint (here should accept a new language argument and the database should have a new field that holds a pointer to the preferred language (in the new language table create in (#2)).

This will also require returning the spoken language code (e.g. en) for each session such that they can be filtered, etc.

Update user preferences

Mobile and website users should be able to update their preferences (language, name, email, etc), which will require creating a new endpoint( PUT on /auth/me/).

Review email content and multilingual support

All email content should be reviewed, simplified and update prior to being translated into the languages supported by Gabber. We can then send emails directly to users in their preferred language.

It's worthwhile to consider how we might also send the translated versions of the language should the user want to read it in English, for example, by having a link in the bottom of the mail: English | Español | Français

Blocked by #2 and #4

Support multilingual project CRUD

Gabber currently supports six languages, and chooses the language based on the preference of the users device. All mobile and web content is stored in string resources, however, as content about a project is dynamic, it does not currently change depending on language set, such as the users preferred language. To support such a change, we must remodel how projects and topics are stored and delivered through the API.

Storing

Currently, a project can have many topics (one-to-many), however, to support multiple languages we must abstract the project content (description, title, slug) and topics text to two other tables (as illustrated below); a project has many project_languages, and a project has many topic_languages.

project_languages

ID ProjectID (FK) LanguageID Description Title Slug
0 12 0 How beer shapes thinking Beer with me beer-with-me
1 12 1 come la birra plasma il pensiero pensano Birra con me birra con me
2 0 0 How do you do, my name is Sue Music from the ages music-from-ages

topic_languages

ID ProjectID (FK) LanguageID text
0 12 0 The good
1 12 1 The bad
2 0 0 The ugly

Output from API

Now we have changed how a project is represented, anywhere that returns a project must be revisited, and fundamental to this is creating and updating a project. This will require updating the ProjectSchema's to return all written content (title, description, topics) contained in a content dictionary where each item has a key representing by a language code (en, ru, it) that can be used to lookup the relevant content.

(The creation of this feature is blocked by #2 and will ensure Mobile#11 is possible)

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.