Citizen Center

A citizenship portal for Americans.

Maintainability
Test Coverage
Discord

Humanity Forward’s Citizen Center

Table of Contents

Who and What Are We?

The Citizen Center is an open-source platform in development by Humanity Forward and the Yang Gang. Through a familiar dashboard interface with a decentralized identity model, Americans will be able to connect with their government in a more secure, more simple and more instantaneous manner to propel our democracy into the 21st century.

Not quite sure what we’re doing? Check out our wiki for more information

Project Overview

Right now: Giving the project a presence

  • [x] Roadmap
  • [x] Architecture
  • [x] CI/CD
  • [x] Adding GitHub Issues based on Roadmap (feel free to create your own issues or pick up ones based on milestones)
  • [ ] Breaking down Epics into smaller issues
  • [ ] UI/UX

What’s next: MVP

  • [ ] SAML/OIDC sign-in with Guest level access. More privacy tiers will be provisioned based on the Just-In-Time principle.
  • [ ] Sign in form for trust level: Guest
  • [ ] Option to subscribe to continuous updates about the project
  • [ ] Account page to edit information
  • [ ] Connecting a bank account
  • [ ] Opt-in for Humanity Forward’s UBI pilot program
  • [ ] Register to vote
  • [ ] Trust levels:
    • [ ] Guest (no trust)
    • [ ] User (email/password)
    • [ ] Resident (out of scope for MVP, dependent on decentralized authentication strategy)
    • [ ] Citizen (out of scope for MVP, dependent on decentralized authentication strategy)

In the roadmap

  • [ ] Apply/Renew a Passport
  • [ ] Filing federal taxes (maybe)
  • [ ] Reviewing the voting histories of congressional representatives
  • [ ] Connecting a bank account
  • [ ] Contacting congressional representatives by way of jurisdiction or committee
  • [ ] Reviewing special interest money in politics
  • [ ] Viewing government actions
  • [ ] Applying for Government Assistance Programs
  • [ ] Having a digital and secure equivalent to a social security number
  • [ ] Actually voting online?

Contributing

  • If you’d like to be actively involved with the team, you can join our Discord, where you can chat with us about the vision, new features, ideas, design, and get access to more documentation + ways to collaborate.
  • Anyone outside the team is welcome to collaborate with us through our Jira and pull requests.

Tech stack

The Citizen Center is a Nuxt.js app built on a lightweight serverless backend hosted on Azure, utilizing Azure Functions for the API and Azure SQL for the database with Redis for caching. The frontend is written in JavaScript and the backend functions are written in Node.JS, Python, and .NET.

Working on the Nuxt.js client

  • CSS: Tailwind.
  • Interacting with APIs: Axios
  • Interacting with the database: TBD

Getting started

  1. Make sure to read the wiki if you’re not 100% on what the Citizen Portal is

  2. git clone repo

  3. Check out the master branch:

    git checkout master
    
  4. Create a new branch using Git Flow branch naming structure and mention Github Issue number:

    git checkout -b #12345/my-fun-thing
    

Running the project locally

Check out the READMEs in the respective directories for instructions on setting up and running the project on your local machine:

Writing commit messages

Submitting a pull request

  1. Test your work
  2. Pull from master to ensure you’re up to date
  3. Merge master into your branch
  4. Test your work again
  5. Create a pull request
  6. Summarize your changes and mention any relevant issues
  7. Submit your PR

I’m ready! But what should I work on?

Great question. Whatever you want!

We have our own priorities for our 2020 launch which you can see:

Are we missing something super important? Create an issue, assign it to yourself, and get going!