Skip to content

Backend Service for Proposals & Voting System #90

@zenlex

Description

@zenlex

Background:

Build a service to support the general implementation outlined in #55

The service will be used by the front end to store and retrieve possible future topics for talks/learning content in one list/ballot and potential civic tech projects in the another. User group members and community partners will be able to propose topics for events and potential projects for civic engagement. Membership will also be able to register votes with the service to select upcoming programming.

Specifications

  • Service should be have a fully bounded context
  • Service should aim conform to the OpenAPI spec drafted here: gist
  • Service should follow 12-factor practices where applicable

Stack is up to the contributor.
If adjustments are needed to the API spec or there are questions/suggestions feel free to add them to the issue here or in the Oklathon project slack channel.

**For the Oklathon team an initial stack of Express + Postgres has been discussed and approved. SQLite would also be acceptable.

Base Schema (modify as necessary)

  • topics (suggested labs/instructional content)
  • projects (suggested non-profit/civic tech initiatives)
  • votes - should connect user, timestamp, and ranking of topics per proposal in docs: Added new voting proposal #55.

For votes, either JSON columns or a pivot table structure is acceptable.
Be sure to record all the data fields specified in the API spec.

Documentation

  • Service should be self contained in a repository with a readme that explains at minimum:
    • How to spin up the project for development
    • How to build/deploy the project for production
    • A copy of the OpenAPI spec
    • Authentication information - we're constructing an API gateway that will ultimately provide a standard auth spec for the microservices so you can hold off on this for now or assume you'll get a standard JWT with the user token. The WIP spec/gateway can be found here

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions