sitter 0.1.6

A library for managing user registration, login, and the user's things.
Documentation
# Sitter

A library for managing user registration, login, and the user's things.

## Installation

Sitter is currently tightly coupled with the Neighbor application. To create the necessary schema, follow these directions:
https://github.com/jeremyandrews/neighbor/blob/main/README.md#installation

## Architecture

Sitter is inspired by the architecture of the Drupal 6 User module. It aims to provide a flexible and extensible mechanism for managing user registration, login, and permissions.

## Notes

 - decoupled; backend-only functionality for now (no forms/HTML);
 - data and functionality exposed via a JSON api;
 - replace uid with uuid;
 - allow manually reserved names and email address;
 - allow manual blocking of users;
 - pluggable user registration;
 - pluggable user login/validation;
 - track when users log-in (logging and timestamp);
 - hook_login;
 - roles and permissions;
 - test coverage;

## Add-ons (used for blog series; proves out extensibility)

 - two-factor authentication functionality;
 - flood/throttling functionality;
 - api tokens;
 - JWT;

## Research

 - MySQL, PostgreSQL, and/or SQLite;
 - customized user table/fields (ie, email only?);
 - customized paths;
 - passwords/bcrypt;
 - actix, or agnostic server? (Rocket 0.5?);
 - api versioning;
 - ui: Vue.js?;
 - email: email validation, password resets;