0.0.42 • Published 2 years ago

apicrud-ui v0.0.42

Weekly downloads
3
License
Apache-2.0
Repository
github
Last release
2 years ago

apicrud-ui

npm.io npm.io npm.io npm.io npm.io npm.io npm.io

What is this

Skip the python/React.js learning curve and put your ideas in production!

The apicrud framework was created to make it far easier to get started on full-stack development of REST-based services ranging from a simple CLI wrapper for queries of local APIs to full web-scale consumer-facing applications.

The essential components of a modern full-stack application include a back-end API server, a front-end UI server, a database, a memory-cache and a background worker for performing actions such as emailing, photo uploading or report generation. This is the UI front-end.

Usage

Clone this repo to your local environment. To start this UI service in a shell session (on a Linux or Mac laptop):

  • Clone the instantlinux/apicrud repo to a separate directory and follow the instructions given in its README to start the back-end.
  • Set environment variables as defined below, at least REACT_APP_API_URL.
  • Invoke make ui_local to bring up the UI, and access by the URL http://localhost:3000.
  • Initial login for admin for a newly created database is p@ssw0rd.

Documentation for the API, defined in openapi.yaml in the instantlinux/apicrud application example (swagger format), can be viewed through the UI as http://localhost:8080/api/v1/ui.

Environment variables

VariableDefaultDescription
PORT3000Port to listen on
REACT_APP_API_URLhttp://localhost:32080Backend, e.g. https://api.yours.com:8080/api/v1
REACT_APP_TOKEN_MAPBOXAPI key for location map (see mapbox.com)

TODO: the published docker image won't read these values at startup until the implementation of env-config.js is completed.

Background

The rise of Docker and Kubernetes starting around 2017 made it possible to set up these production-grade services directly on the laptop of any developer. Only recently have the tools been easier to configure and set up. This framework provides working example code you can use to get started creating your own secure, web-scale services.

Implementation/design includes these technologies: celery, CloudFront and S3, docker, flask, kubernetes, MapQuest geocoding, mapbox, MariaDB, python 3, RabbitMQ, react.js, react-admin, sqlalchemy, uWSGI.

Contributions

Your pull-requests and bug-reports are welcome here. See CONTRIBUTING.md.

License

Software copyright © 2021 by Richard Braun Apache 2.0 license