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.
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 isp@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.
Variable | Default | Description |
---|---|---|
PORT | 3000 | Port to listen on |
REACT_APP_API_URL | http://localhost:32080 | Backend, e.g. https://api.yours.com:8080/api/v1 |
REACT_APP_TOKEN_MAPBOX | API 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.
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.
Your pull-requests and bug-reports are welcome here. See CONTRIBUTING.md.
Software copyright © 2021 by Richard Braun • Apache 2.0 license