Skip to content

kulturdaten.berlin is a project by Technologiestiftung Berlin and is funded by the Senate Department for Culture and Social Cohesion

License

Notifications You must be signed in to change notification settings

technologiestiftung/kulturdaten-api

Repository files navigation

About kulturdaten.berlin

All Contributors

We make Berlin’s cultural diversity visible

On the one hand, the internet offers many ways to find out about Berlin’s diverse cultural scene, but on the other hand, there remains no central overview of all the city’s cultural institutions and events. With kulturdaten.berlin, we want to create the basis for making it easier to discover the diversity of Berlin’s culture - from small but inviting events held in a given neighborhood to major cultural productions. Via our data interface, event portals, for example, can obtain exactly the data they need for their particular sector focus in no time at all. kulturdaten.berlin is based on the principles of open data and open source. That means, the source code is open and the cultural data of the platform is freely and easily accessible to all via an API, so that others can use it to build their own applications, for example. Whether it’s an app specifically for barrier-free cultural experiences or a website with concert tips specific to a given neighborhood: we're opening up Berlin’s cultural data for anyone with fresh ideas to reuse.

kulturdaten.berlin is a project of the Technologiestiftung Berlin (https://www.technologiestiftung-berlin.de), funded by the Senate Department for Culture and Social Cohesion.

Links

Prerequisites

  • Install a Node version according to the version specified in .nvmrc (e.g. with nvm install or nvm use)
  • Install MongoDB Community Edition

Installation

  1. Install packages with npm install
  2. Generate OpenAPI schema files in /src/generated with npm run generate
  3. Create an .env in the root directory and fill it with values (see .env.example for inspiration)

Development

# Local development server
npm run dev

# Local development server in debug mode
npm run debug

More commands

# Re-generate all OpenAPI schema files
npm run generate

# Format all code with Prettier
npm run format

# Lint all code with ESLint
npm run lint

# Lint the generated OpenAPI file
npm run lint-openapi

# Run the TypeScript compiler to find any TypeScript errors
npm run typecheck

Tests

Run all tests with Vitest (incl. hot reload when run locally):

npm test

Production Build

npm start

Initializing an empty database

The Seeder.ts script assists in initializing your database. Use the -t or --tags flag to add predefined tags. For setting up organizations for Berlin boroughs (excluding 'außerhalb'), use the -b or --boroughs flag with a default password. To set up an admin user, utilize the -a or --admin flag followed by credentials in email:password format. Combine flags for simultaneous operations. Example:

npm run seed -- --tags --boroughs password123 --admin [email protected]:password123

Note: The script only populates empty collections to avoid duplicates and unintended overwrites, especially important for admin user creation.

Contributing

Before you create a pull request, write an issue so we can discuss your changes.

Contributors

Thanks goes to these wonderful people (emoji key):

Thorsten Diekhof
Thorsten Diekhof

💻 🤔 👀 📖 ⚠️ 🚇
Sebastian Herrmann
Sebastian Herrmann

💻 🤔 👀 ⚠️ 🚇
Urs Schmidt
Urs Schmidt

💻 🤔 👀 ⚠️
Simon Scholler
Simon Scholler

🤔 👀

This project follows the all-contributors specification. Contributions of any kind welcome!

Content Licensing

Text and content available as CC BY.

Credits

Made by

Supported by:

About

kulturdaten.berlin is a project by Technologiestiftung Berlin and is funded by the Senate Department for Culture and Social Cohesion

Topics

Resources

License

Stars

Watchers

Forks