No description
Find a file
2025-09-22 12:13:54 +12:00
.vscode work in progress which has been lingering 2024-02-05 16:06:46 +13:00
admin :admin backup script for dev DB 2025-09-22 12:06:59 +12:00
campaign_manager :feat makes walklists 2025-09-22 11:34:42 +12:00
features work in progress which has been lingering 2024-02-05 16:06:46 +13:00
git-hooks work in progress which has been lingering 2024-02-05 16:06:46 +13:00
migrations :feat adds PersonList to model 2025-06-27 10:36:59 +12:00
tests working authorisation decorator 2025-01-10 16:13:34 +13:00
.env :fix typo 2024-10-28 12:09:41 +13:00
.envrc moves to python3.12 2024-04-07 13:53:39 +12:00
.gitignore file structure for SQLModel 2024-02-05 16:14:41 +13:00
.gitlab-ci.yml Configure SAST in .gitlab-ci.yml, creating this file if it does not already exist 2023-12-02 00:52:56 +00:00
alembic.ini first database migration 2024-05-27 15:35:28 +12:00
developer-requirements.txt first database migration 2024-05-27 15:35:28 +12:00
README.md :admin backup script for dev DB 2025-09-22 12:06:59 +12:00
requirements.txt :feat working Google OAuth2 !! 2025-01-29 16:27:18 +13:00
TODO.MD :feat login and logout pages 2024-12-30 15:58:35 +13:00

CampaignManager

Project status

Pre-Alpha - Not ready for use

Badges

#TODO: Add badges

Description

This software allows a team to co-ordinate a political or public relations campaign. This software includes elements of a Customer Relationship Management (CRM) tool and a project management tool.

Features are defined in the features directory.

Roadmap

2024 - First release

Features:

  1. Database for tracking contacts
  2. Event management including calendar
  3. OAuth2 authentication
  4. Interface to allow synchronization with legacy CRM

Not in scope:

  1. Javascript. MVP will be a server-side rendered application.

Tools

Installation

#TODO: Add installation instructions

Getting to postgres

docker run --name campaignmanager-postgres \
    -e "POSTGRES_PASSWORD=${POSTGRES_PASSWORD}" \
    -p  127.0.0.1:5432:5432 \
    -d postgres

Usage

Very early days flask run

Migrations

python -m alembic revision --autogenerate -m "reason"

Then review the changes in the generated file in the alembic/versions directory. Then apply the changes

python -m alembic upgrade head

Grants

If you're not logging in as the database owner (which is the design for production, but overhead for dev) then you'll need

GRANT ALL ON DATABASE ? TO ?;
GRANT ALL ON SCHEMA public to ?;
GRANT ALL ON ALL TABLES IN SCHEMA public to ?;
/* you might need this too
SELECT 'ALTER TABLE '|| table_name||' OWNER TO ?;'
FROM Information_schema.tables
where table_schema = 'public'
*/

OAuth

The OAuth logins require configuration at the far end.

Nationbuilder

The "App" in Nationbuilder uses this callback URL http://127.0.0.1:5000/login/nationbuilder/authorized

Support

No support for this version

Contributing

Python code is formatted with black and linted with flake8 Development has been done on OSX 14, dependencies on that platform un not desired, but probably exist. #TODO: Add contributing guidelines

Authors and acknowledgment

Steven Ensslen

License

GNU AFFERO GENERAL PUBLIC LICENSE Version 3 https://www.gnu.org/licenses/agpl-3.0.html