jsfan / hello-neighbour-api Goto Github PK
View Code? Open in Web Editor NEWBackend for the Hello Neighbour app started at COVID-19 Global Church Hackathon
License: Apache License 2.0
Backend for the Hello Neighbour app started at COVID-19 Global Church Hackathon
License: Apache License 2.0
Leaders should be able to retrieve a list of all their church members
Leaders should be able to retrieve details of their own church
Leaders should be able to delete their church from the system, thereby disassociating all members.
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.
Users should be able to delete their own accounts
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.
Leaders should be able to disassociate individual church members
Default endpoint for adding a new user to the system
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
.
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.
Users should be able to retrieve and update their personal details.
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.
The Dockerfile should build a lightweight container (preferably Alpine Linux with symlinks to make Go binaries work) which runs the app.
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.
Leaders should be able to retrieve and update church details
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).
Any available unit tests should be executed by Github Actions.
There should also be a gofmt
check.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.