Code Monkey home page Code Monkey logo

Production

Map CI API CI Admin CI

Preview

Map CI API CI Admin CI

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 install

Configure 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

  • To start the map application in development mode run yarn dev
  • The map frontend will be started at http://localhost:3000. The frontend express server runs on port 3000 and will proxy request to the API server on port 3030.
  • The API server will run on http://localhost:3030

Or: Running API / Admin in development mode

  • To start the admin application in development mode run yarn dev-admin
  • The admin frontend will be started at http://localhost:4000. The frontend express server runs on port 3000 and will proxy request to the API server on port 3030.
  • The API server will run on http://localhost:3030

Build for production

  • Build the project for production with yarn buildeither 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

  • To create initial data, run knex seed:run inside the /api folder
  • The command will create the following test users
username password roles
[email protected] admin superadmin
[email protected] admin admin
[email protected] 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

Teikei / ErnteTeilen's Projects

ernte-teilen.org icon ernte-teilen.org

The website for ErnteTeilen, a civic society initiative aimed at supporting community-supported agriculture with digital technology.

teikei icon teikei

A web application that maps out community-supported agriculture in Germany, Switzerland, and Austria, based on crowdsourced data.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.