Code Monkey home page Code Monkey logo

hello-neighbour-api's People

Contributors

ashar67 avatar jsfan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

hello-neighbour-api's Issues

Implement delete church

Leaders should be able to delete their church from the system, thereby disassociating all members.

Implement accept church invite

Members should be able to accept an email invite to join a church and fill in the remainder of user details (description, gender, password, dob, contact details, etc.) upon registration.

Update Swagger specs to include login and registration

The specs are currently written with the assumption that a third-party service takes care of authentication and session management while the API itself only verifies a JWT. As the app is now meant to take care of authentication itself, it needs to allow for a login using username and password (and possibly also a second factor for MFA) and issue a JWT on successful login.

As JWTs cannot be invalidated, we don't need to have a logout. The app will log the user out by deleting its copy of the JWT.

Add docker-compose.yml

The docker-compose.yml file should configure a stack which contains the app, an NginX reverse proxy and a PostgreSQL server.

The database needs to be kept on a volume mounted from the host system's disk.
Ideally, the NginX reverse proxy should be configured for HTTPS and read its key and certificate from a mount on the host system. This may require another Dockerfile and possibly a build script to build Docker images and create a self-signed key pair by default.

The docker-compose.yml should be suitable for the docker stack command rather than docker-compose.

Implement JWT for login and registration

Once a login and logout endpoint have been specified as per #3 , the authentication and issuing of JWT need to be implemented.

We also need to change our data model to allow for a password hash to be stored. We can user the email address as the login because it has to be unique, anyway.

As pat of the data model update, we might also want to drop the Firebase ID which we no longer require.

Implement retrieve signed up churches

Members who are looking to send a request to add a new church should be able to retrieve a list of all the churches that are currently signed up.

Add Dockerfile

The Dockerfile should build a lightweight container (preferably Alpine Linux with symlinks to make Go binaries work) which runs the app.

Implement new church request

Members without existing church affiliation should be able to send a request to the admins for adding a new church to the system to invite other members to. Upon approval, the initial member will be promoted to a leader.

Invite new members

Implement endpoint for church leaders to send email invites to add new (potential) church members, creating a placeholder user in the meantime (email, first name, last name).

Set up Github Actions

Any available unit tests should be executed by Github Actions.
There should also be a gofmt check.

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.