Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/technologiestiftung/kulturdaten-webapp

Webapp for cultural actors to input and manage cultural data (e.g. offerings / events / locations / organizations)
https://github.com/technologiestiftung/kulturdaten-webapp

nextjs react typescript

Last synced: about 2 months ago
JSON representation

Webapp for cultural actors to input and manage cultural data (e.g. offerings / events / locations / organizations)

Awesome Lists containing this project

README

        

> [!NOTE]
> This webapp is currently under development and not yet ready to be used by the public.

# About

The kulturdaten.berlin webapp that enables cultural actors to input and manage cultural data such as cultural offerings, events, locations.

## Installation

1. Install a node version that matches the version defined in `.nvmrc` (if you’re using [nvm](https://github.com/nvm-sh/nvm), run `nvm install` and/or `nvm use` to switch to that version).
2. Install dependencies:
```shell
npm install
```
3. Create a `.env` file and add all values (see `.env.example` for inspiration).
4. Generate the OpenAPI client:
```shell
npm run generate-api
```

> [!NOTE]
> Make sure you have an instance of the [kulturdaten-api](https://github.com/technologiestiftung/kulturdaten-api) running locally. Alternatively, you can use a deployed API by adjusting `NEXT_PUBLIC_API_BASE_URL` in `.env`.

## Available Scripts

In the project directory, you can run:

- `npm run dev`: Runs the Next.js development server.
- `npm run generate-api`: Generates an API client from an OpenAPI specification file (`openAPI-specs.yml`).
- `npm test`: Runs all tests with Vitest (incl. hot reload when run locally).
- `npm run format`: Runs Prettier to format source code.
- `npm run lint`: Runs ESLint to check for linting errors.
- `npm run typecheck`: Runs TypeScript to check for type errors.
- `npm run build`: Builds the Next.js application for production usage.
- `npm start`: Starts the Next.js server for production usage.

## Deployment

This project is currently deployed on [Render](https://render.com/).

- Build command: `npm install; npm run build`
- Start command: `npm start`
- The `PORT` environment variable needs to be set to `10000` (to work with Render’s port detector)

## Internationalization

Internationalization (i18n) is implemented via [next-intl](https://next-intl-docs.vercel.app/) and Next.js’ [i18n routing](https://nextjs.org/docs/pages/building-your-application/routing/internationalization).

- The supported languages is only German (`de`) for now. The message strings are stored in `/i18n/de.json`.
- Messages are grouped with [namespaces](https://next-intl-docs.vercel.app/docs/usage/messages#structuring-messages) (ideally, we’ll end up with ~1 namespace per page).
- TypeScript integration is implemented within `global.d.ts`, which only uses the German translations (`/i18n/de.json`) to build the types.
- New pages should have a `getStaticProps` or `getServerSideProps` function that returns the `messages` prop (see [docs](https://next-intl-docs.vercel.app/docs/getting-started/pages-router)).

## Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):



Urs Schmidt
Urs Schmidt

💻 🤔 ⚠️ 👀
Thorsten Diekhof
Thorsten Diekhof

💻 🤔 👀 ⚠️ 🚇
Sebastian Herrmann
Sebastian Herrmann

💻 🤔 👀 ⚠️ 🚇
Simon Scholler
Simon Scholler

🤔 👀 🎨 🖋

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

## Content Licensing

Texts and content available as [CC BY](https://creativecommons.org/licenses/by/3.0/de/).

## Credits



Made by








Supported by