A web application that maps out community-supported agriculture in Germany, Switzerland, and Austria, based on crowdsourced data.
Production
Preview
Teikei
Teikei is a web application and API that maps out community-supported agriculture in Germany, Switzerland, and Austria, based on crowdsourced data.
It is used by
Introduction
The repository is a monorepo consisting of 3 modules:
API /api
Teikei API is a Node application written with Feathers using Express as a server. It exposes a JSON REST API, data is stored in PostgreSQL. It also includes a job queue built with node-schedule.
Map /map
Teikei Map is a Single Page Application built with React and Redux. It was generated with the default create-react-app with added Sass support. Uses leaflet to display the map, feathers-client to connect to the API backend, joi for validation, superagent as a REST client.
Admin /admin
Teikei Admin allows content moderators and administrators to update and manage stored data. It connects to the same Teikei API backend application as the frontend module, but through separate Admin API endpoints. It's built with crudl.io, an open-source admin dashboard.
The monorepo makes use of yarn workspaces and lerna and provides top-level scripts to run a complete Teikei application stack with a single command and to conveniently work with all 3 modules from a single repository.
Getting started Requirements
Teikei requires node >= 18, yarn and PostgreSQL >= 9.5.
Get the code
Clone the repository and install dependencies
git clone https://github.com/teikei/teikei cd teikei yarn installConfigure project settings
You need to create an .env
file in the root directory which contains the environment variables needed to run the project. The included .env.sample
file lists the variables which need to be set.
Setup PostgreSQL database
Teikei rquires Post
Running API / Map in development mode
yarn dev
Or: Running API / Admin in development mode
yarn dev-admin
Build for production
yarn build
either in the root directory to build all modules or individually in module subfolders. The build output will be copied to the /build folders of modules.Test data
knex seed:run
inside the /api folderusername password roles
superadmin@example.com admin superadmin
admin@example.com admin admin
user@example.com admin user
Roadmap
We use Taiga to plan upcoming features and track bugs. If you want to participate, it's probably a good idea to look for open issues there. Before working on bigger features, however, it's advisable to get in contact with us, so that we can coordinate progress a little.
Report a bug
Bugs, Issues and Feature requests can be added as issues here on Github, they will be automatically exported to our Taiga Bug tracker.
Authors & contributors
License
Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.
We'll never share your email with anyone else.