Skip to content

Latest commit

 

History

History
106 lines (75 loc) · 3.91 KB

README.md

File metadata and controls

106 lines (75 loc) · 3.91 KB

Zetkin Web App

This is the current-generation (Gen3) web interface for the Zetkin Platform. It is gradually replacing the older (Gen2) web apps that can be found elsewhere.

The Zetkin Platform is software for organizing activism, developed by staff and volunteers at Zetkin Foundation and used by organizations within the international left.

Contributing

Do you want to contribute to this project and become part of a community of people that use their coding skills to help the international left? We try to make the process as easy and transparent as possible. Read all about it in the separate CONTRIBUTING.md file.

Also see TESTING.md for details about automated testing.

Instructions

Getting the code

The code is hosted on GitHub (likely where you are currently reading this information). If you are unfamiliar with Git and/or GitHub, here's some recommended reading from the GitHub Docs:

You can use any editor or IDE to edit the code, but most of us use VSCode.

Running the code (normal)

The Zetkin web app is a NEXT.js app that runs in the Node.js JavaScript runtime. If you don't have it already, you must install Node.js first.

We use yarn (Classic) to manage our code dependencies. Once you have installed yarn you can install all other dependencies like so:

$ yarn install

With dependencies installed, you can start the development server:

$ yarn devserver

You should now be able to access the app on http://localhost:3000. It will communicate with the Zetkin API running on our public development server. See below for login credentials.

Running the code (Docker)

As an alternative to the normal development setup, you can also run the provided Docker Compose setup.

  • Requires Docker Compose v2+

  • Backend development: Run local production (after building, it starts very fast) and access the organizations directly on http://localhost:3000/organizations/.

    $ docker compose -f dev.yml --profile static up
    
  • Frontend development: Similar to the normal yarn setup documented here.

    $ docker compose -f dev.yml --profile dev up
    
  • Linting: You can run lint commands from within a container, too:

    $ # Default: Run .githooks/precommit
    $ docker compose -f dev.yml run lint
    $ # Run prettier, checking for errors
    $ docker compose -f dev.yml run lint npx prettier . --check
    $ # Run prettier in write-mode
    $ docker compose -f dev.yml run lint npx prettier . --write
    

Note: If you are running the backend locally and things like dev.zetkin.org resolve to 127.0.0.1, then this only works on Linux-based systems, due to the nature of 127.0.0.1 pointing to the host on Linux (but not on Windows/Mac, where it points to the container itself).

Development server login credentials

You can log in using the dummy user accounts to access dummy data from the development server.

Hint: when in doubt, use Administrator

Role/access Username Password SMS code
Administrator [email protected] password 999999
Caller [email protected] password 999999
Basic user [email protected] password 999999

The SMS one-time password is only required in some parts of the app.