Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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)
- Host: GitHub
- URL: https://github.com/technologiestiftung/kulturdaten-webapp
- Owner: technologiestiftung
- License: mit
- Created: 2023-04-05T15:20:39.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-09T11:53:41.000Z (about 1 year ago)
- Last Synced: 2024-01-26T06:03:25.379Z (12 months ago)
- Topics: nextjs, react, typescript
- Language: TypeScript
- Homepage: https://kulturdaten-webapp.onrender.com
- Size: 13 MB
- Stars: 0
- Watchers: 5
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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
💻 🤔 ⚠️ 👀
Thorsten Diekhof
💻 🤔 👀 ⚠️ 🚇
Sebastian Herrmann
💻 🤔 👀 ⚠️ 🚇
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