Giter Club home page Giter Club logo

planerinnenfuerdwe's Introduction

PlanerInnen für Deutsche Wohnen & Co Enteignen is an open letter from Berlin architects to support the project Deutsche Wohnen & Co Enteignen project, a city-wide campaign to release Berlin's private housing back into the affordable rental market. (Read the letter here)

This is the open letter's repository, built using Next.js and TypeScript.

Replicate this project

The signatures of the open letter are collected on Supabase instance. To replicate this repo, you must first make sure to have your own Supabase instance (the backend) containing a single table with the following columns:

  • userId (reference to the auth table, required)
  • firstName (text, required)
  • lastName (text, required)
  • confirmedAt (timestamp, required)
  • organisation (text, optional)

Then, clone this repository (the frontend), create a file on the root level named .env or .env.development.local and fill in the required values (see .env.example for a reference). You need to add the following env variables as GitHub secrets for your repository if you wish the github actions to run:

  • NEXT_PRIVATE_SUPABASE_SERVICE_KEY
  • NEXT_PUBLIC_SUPABASE_ANON_KEY
  • NEXT_PUBLIC_SUPABASE_URL

Finally, run npm install to install all required dependencies and then npm run dev to start developing locally. All available script can be found further down.

Quality management

This repo use husky and lint-staged to run some quality management script before each commits. These scripts are:

  • Lint all js files
  • Type-check changed typescript files
  • Run tests concerned by changed files

To enable type checking of only staged files, a script has been added scripts/tsc-lint.sh. To allow this script to run, you might need to give it the relevant permissions. Run chmod +x scripts/tsc-lint.sh. The script is needed because there is otherwise no way to run tsc only on staged files. Typescript only allows for either a list of files or a tsconfig.json.

Structure

The folder structure follows Next.js's recommendations.

Views and components

Page routing is achieved with Next.js's file-system routing. The views themselves are simply React components that can be found in src/components. All other components can be found there as well.

Storybook

This repo uses Storybook to create and test its React components in isolation. It also uses the storyshots addon to create test snapshots.

Testing

The library jest is used to unit test the code as well as testing-library to test the react components, user events, and other things.

To run the tests enter:

npm t

Or in watch mode:

nom run test:watch

Styling & Theming

This project uses Tailwind CSS for styling. The primary style definitions can be found in src/style/theme.ts. The theme can be referenced in every component. For visual consistency, definitions from the theme should be used whenever possible. Information about using the theme can be found in Theme UI's docs.

Workflow

New features, fixes, etc. should always be developed on a separate branch:

  1. In your local repository, checkout the main branch.
  2. Run git checkout -b <name-of-your-branch> to create a new branch (ideally following Conventional Commits and with a reference ID).
  3. Make your changes
  4. Push your changes to the remote: git push -U origin HEAD
  5. Open a pull request.

You can commit using the npm run cm command to ensure your commits follow our conventions.

Deployment

The frontend is currently deployed to Vercel. Pushing to the main branch will automatically trigger a new deploy. This should be avoided, if possible. Rather use pull requests against main.

planerinnenfuerdwe's People

Contributors

enteignenxarch avatar vogelino avatar

Watchers

 avatar  avatar  avatar

planerinnenfuerdwe's Issues

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Error type: Preset package is missing a renovate-config entry (@inpyjamas)

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Repository problems

These problems occurred while renovating this repository.

  • WARN: Using npm packages for Renovate presets is now deprecated. Please migrate to repository-based presets instead.
  • WARN: Base branch does not exist - skipping

This repository currently has no open or pending branches.

Detected dependencies


  • Check this box to trigger a request for Renovate to run again on this repository

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.