Home

Awesome

<div align="center"> <a href="https://github.com/activist-org/activist"><img src="https://raw.githubusercontent.com/activist-org/Organization/main/logos/activistGitHubOrgBanner.png" width=1024 alt="activist Logo"></a> </div>

platforms netlify issues django nuxt vue tailwind license coc instagram weblate matrix

An open-source activism platform

activist.org is a platform that enables more people to safely engage in activism by making it easy to discover organizations and events as well as coordinate and collaborate on political action. We want to enable activists to learn proven and novel strategies from each other for social and ecological change. Free, open-source, privacy-focused and governed by our community.

<!-- > [Learn more about our organization on activist.org](https://activist.org/organizations/1/about) -->

[!NOTE] The contributing section has information for those interested.

<a id="contents"></a>

Contents

<a id="our-goals"></a>

Our goals

The activist community is creating a global platform where movements grow and people are inspired to join in political actions. We want to update how power is distributed in our society by removing barriers and enabling more people to safely engage in activism.

<a id="topics"></a>

Topics

The following are the working topics that activist could include:

EnvironmentHousingRefugees and Migration
LGTBQIA+Racial JusticeWomen's Rights
Children's RightsElder RightsEducation
Health and WellbeingAnimal RightsDemocracy
Labor RightsTechnology and PrivacyPeace and Resolution
NutritionAccessibility and InclusionInstitutional Transparency
Freedom of ExpressionInfrastructure and MobilityEmergency Relief
<br/> Beyond clustering by topics, tags will also be used to draw community attention to more specific issues.

<a id="preview-video"></a>

Preview video

The following is a recording of the Creating and Joining Events prototype found on Figma:

https://user-images.githubusercontent.com/24387426/215117858-96b0d3ac-4d11-449e-bcc0-2b7ec330a6e1.mp4

Further prototypes and designs are available in the designs for activist.

<a id="contributing"></a>

Contributing

<a href="https://matrix.to/#/#activist_community:matrix.org"><img src="https://raw.githubusercontent.com/activist-org/Organization/main/resources/images/logos/MatrixLogoGrey.png" height="50" alt="Public Matrix Chat" align="right"></a>

We use Matrix for our internal communication. You're more than welcome to join us in our public chat rooms to share ideas, ask questions or just say hi to the team :)

Please see the contribution guidelines and style guide if you are interested in contributing. Work that is in progress or could be implemented is tracked in the issues and projects.

[!NOTE] Just because an issue is assigned on GitHub doesn't mean that the team isn't interested in your contribution! Feel free to write in the issues and we can potentially reassign it to you.

Also check the -next release- and -priority- labels in the issues for those that are most important, as well as those marked good first issue that are tailored for first time contributors. For those new to coding or our tech stack, we've collected links to helpful documentation pages in the contribution guidelines.

We would be happy to discuss granting you further rights as a contributor after your first pull requests, with a maintainer role then being possible after continued interest in the project. activist seeks to be an inclusive, diverse and supportive organization. We'd love to have you on the team!

<a id="how-you-can-help"></a>

How you can help

<a id="environment-setup"></a>

Environment setup

  1. First and foremost, please see the suggested IDE setup in the dropdown below to make sure that your editor is ready for development.

[!IMPORTANT]

<details><summary>Suggested IDE setup</summary> <p>

VS Code

Install the following extensions:

WebStorm

</p> </details>
  1. To setup your development environment, first install Docker and Docker Compose.

[!NOTE] If you are new to Docker, activist recommends installing Docker Desktop. Docker Desktop comes with many Docker tools and a straightforward user interface.

  1. Fork the repo, clone your fork, and configure the remotes:

[!NOTE]

<details><summary>Consider using SSH</summary> <p>

Alternatively to using HTTPS as in the instructions below, consider SSH to interact with GitHub from the terminal. SSH allows you to connect without a user-pass authentication flow.

To run git commands with SSH, remember then to substitute the HTTPS URL, https://github.com/..., with the SSH one, git@github.com:....

GitHub also has their documentation on how to Generate a new SSH key 🔑

</p> </details>
# Clone your fork of the repo into the current directory.
git clone https://github.com/<your-username>/activist.git
# Navigate to the newly cloned directory.
cd activist
# Assign the original repo to a remote called "upstream".
git remote add upstream https://github.com/activist-org/activist.git
  1. Create a virtual environment for the backend, activate it and install dependencies:

    # Unix or MacOS:
    python3 -m venv venv
    source venv/bin/activate
    
    # Windows:
    python -m venv venv
    venv\Scripts\activate.bat
    
    # After activating venv:
    pip install --upgrade pip
    pip install -r backend/requirements-dev.txt
    
  2. Start your docker images with the following:

    # --build only necessary with new dependencies or backend model changes
    docker compose --env-file .env.dev up --build
    
    # And to stop the containers when you're done working:
    # docker compose --env-file .env.dev down
    

    Sometimes changes to the database can cause the database population to fail in your environment. If this happens, you can destroy the deployment and rebuild it:

    # Destroy your current docker-compose deployment:
    docker-compose rm -f -v --env-file .env.dev
    
  3. You can then visit http://localhost:3000 to see the development frontend build once the container is up and running. From there click View organizations or View events to explore the platform.

  4. To view the backend admin UI and Swagger UI, visit http://localhost:8000/admin and http://localhost:8000/v1/schema/swagger-ui/ respectively.

  5. If you'd like to sign in to the frontend via http://localhost:3000/auth/sign-in or the Django admin panel via http://localhost:8000/admin, then you can use the fixtures admin user with the password admin.

[!NOTE] Feel free to contact the team in the Development room on Matrix if you're having problems getting your environment setup! If you're having issues with Docker and just want to get the frontend or backend up and running, please see the section on this in the contributing guide.

  1. Install pre-commit to ensure that each of your commits is properly checked against our linter and formatters:

    # In the project root:
    pre-commit install
    

[!NOTE] pre-commit is Python package that can be installed via pip or any other Python package manager. You can also find it in our requirements.txt file.

pip install pre-commit

<a id="tech-stack"></a>

Tech Stack

The following are the current and planned technologies for activist.org:

Frontend

Backend

Deployment

Internationalization

Analytics

[!NOTE] Those new to any frameworks or technologies who want to work on their skills are more than welcome to contribute!

<a id="design-a11y"></a>

Design and accessibility

<a href="https://www.figma.com/file/I9McFfaLu1RiiWp5IP3YjE/activist_designs?node-id=805%3A231"><img src="https://raw.githubusercontent.com/activist-org/Organization/main/resources/images/logos/FigmaLogo.png" height="50" alt="Public Figma Designs" align="right"></a>

The designs for activist are made using Figma. You can use the issues to make suggestions for improvements. Design related issues are marked with the design label.

We want our tools to look great, feel easy to use and function flawlessly on any device while at the same time including good security practices wherever possible. We also consistently make decisions that put a11y at the center of what we’re building.

[!NOTE] Please contact the team on GitHub or via the email on the designs welcome page if you're interested in contributing. We'd love to see a sample of your work and if everything looks good we'll schedule a time to get connected!

<a id="platform-features"></a>

Platform features

The project board is where we organize our work and plan out what's next. The following sections give a general overview of the various planned features of activist.org.

Organizations profiles

Easy-to-use microsites for organizations of all sizes with multiple subpages.

Describe your organization’s aims and structure as well as answer frequently asked questions. Explain how your groups collaborate and safely onboard new people to the team.

Events

Collaborative event pages made for activists and their needs.

Organizations can create flexible event pages for different formats of events. There are two types of events:

Other event features include:

Resources

A simple link hub for organizations.

Organizations can keep important links (chats, articles, pads, etc.) in one place, group what belongs together and pin to the top what’s currently most important. Private by default, resources can also be made public to share information and best practices.

Onboarding

Safe methods to onboard new members.

We are working on a conversational onboarding interface based on the Matrix protocol that operates across messengers while not compromising data sovereignty for organizations or individuals. Organizations will also have the option to include their existing processes if preferred.

Search

Easily find, filter and share.

Display search results in list, map and calendar views. Users can also save searches for later or set up notifications for newly published events, resources, and discussions.

Discussions

Dedicated forums for organizations and their events.

Discussions will also allow organizations, groups and events to send notifications to supporters. Included features for democratic decision making will further enable asynchronous planning.

Tasks

Kanban boards for organizing the work to be done.

Users will be able to attach kanban boards to every organization, group and event. This will allow those involved to easily plan and keep an overview of progress while templates guide organizers with best practices from our community.

Affiliates

Relationships between organizations, people and events.

Organizations and users can give support to each other as well as events:

Relationships between organizations will help users find similar organizations or easily connect with actions when they’re in a new place. Affiliations will also determine notifications and access to restricted content.

Votes

Linking events and organizations to decision making.

Users will be able to subscribe for updates on events and organizations that work in relation to legislation and elections. The plan for this feature is that it will be based on data from Wikidata, with open data generating the vote pages that our community then maintains.

<a id="securely-hosted"></a>

Securely hosted

We are hosting our data in Iceland with a reputable hosting provider that is trusted by whistleblowers, activists and investigative journalists: FlokiNET.

Iceland is a strong supporter for net neutrality with strict privacy protection laws and freedom of the press. All these factors have contributed to making Iceland a preferred destination for data centers.

You can learn more about FlokiNET on their blog.

<a id="community-governance"></a>

Community governance

We not only value, but need open discourse. Our initial feature set for the MVP and future releases was developed together with our growing community of activists.

Our aim is to secure a progressive community by design while putting platform health before platform growth. Only organizations that are already on activist will be able to vouch for new organizations that apply to join. Together with experienced activists we are selecting an initial group of organizations that have a proven track record of inclusivity and elevating underrepresented groups.

We are still developing our operating principles and will always update them based on community decisions. Questions around flagging, banning, guidelines and rules will always be answered collectively.

<a id="localization"></a>

Localization

<a href="https://hosted.weblate.org/projects/activist/activist"><img src="https://raw.githubusercontent.com/activist-org/Organization/main/resources/images/logos/WeblateLogo.png" height="100" alt="Visit Weblate project" align="right"></a>

We need to break down language barriers in order to mobilize larger and more diverse coalitions. Translation requests will be available for several assets on the platform - organization profiles, events and resources - and we are growing our network of volunteer contributors to facilitate this.

[!NOTE] Want to join our translators working group? Please join us in the localization project on Weblate and the Localization channel on Matrix to get involved!

Localization of activist is done via Weblate. Please see the localization guide for information on how to get started!

Localization coverage

<a href="https://hosted.weblate.org/projects/activist/activist"> <img src="https://hosted.weblate.org/widget/activist/activist/multi-auto.svg" alt="Translation status" /> </a>

<a id="supporters-partners"></a>

Supporters and partners

Contributors

Thanks to all our amazing contributors! ❤️

<a href="https://github.com/activist-org/activist/graphs/contributors"> <img src="https://contrib.rocks/image?repo=activist-org/activist" /> </a>

Code and dependencies

We would like to thank all the great software that made activist's development possible 🙏

Our supporters

Licensed software providers

The following organizations have supported activist with licenses to use their technology for free:

The Wikimedia UNLOCK Accelerator

These organizations have supported activist via the 2022 edition of the Wikimedia UNLOCK accelerator. UNLOCK supported open-source software projects and non-technical projects under free licenses. UNLOCK Accelerator was committed to promoting solutions that make the world's knowledge more diverse, more accessible and inclusive for everyone.

<div align="center"> <br> <a href="https://www.wikimedia.de"><img height="130"src="https://raw.githubusercontent.com/activist-org/Organization/main/resources/images/logos/WikimediaDeutschlandLogo.png" alt="Wikimedia Deutschland"></a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://wikimedia.rs"><img height="120" src="https://raw.githubusercontent.com/activist-org/Organization/main/resources/images/logos/WikimediaSerbiaLogo.png" alt="Wikimedia Serbia"></a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://belgrade.impacthub.net"><img height="120" src="https://raw.githubusercontent.com/activist-org/Organization/main/resources/images/logos/ImpactHubLogo.png" alt="Impact Hub Belgrade"></a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br> </div>

Disclosure

activist is not directly affiliated with any corporation, political party or government.