Skip to main content

Projectify is a Free Software project management app

Project description

Projectify

Projectify is a free software project management software that anyone can use, inspect, customize and distribute according to their needs.

Official instance: https://www.projectifyapp.com.

Development Requirements

Here's how to install asdf on your computer.

Installing Python 3.12 and Node.js 24

Managing Python and Node.js versions is convenient using asdf:

asdf plugin-add python
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
asdf install python 3.12.12
asdf install node.js 24.13.1

Installing PostgreSQL 15

Projectify uses PostgreSQL 15. Here's how to install it:

  • On macOS (using Homebrew): brew install postgresql@15 [^brew-postgres]
  • On Debian: sudo apt install postgresql-15 libpq-dev
  • On other systems: See the PostgresSQL documentation

[^brew-postgres]: postgresql@15 on brew.sh

Check whether you can connect to your local PostgreSQL instance by using the following command:

psql

If you've installed PostgreSQL correctly, you should see the following prompt:

psql (15.14)
Type "help" for help.

debian=#

Press Ctrl+d to exit psql.

Quickstart

After making sure that you've added the dependencies, follow these steps to start developing with Projectify:

  1. Clone this repository.
  2. Install all dependencies using the Python uv tool.
  3. Create a .env environment file by copying the .env.template file.
  4. Edit the DATABASE_URL variable in the .env file and point it to your local PostgreSQL 15 instance.
  5. Create a projectify PostgreSQL database inside your local PostgreSQL 15 instance using the createdb command.
  6. Then, inside a uv shell, perform the following: a. Migrate the projectify database that you have just created. b. Seed the projectify database with test data using the seeddb command. c. Start the development server. d. Start tailwind

[^django-tailwind]: Django-Tailwind django-tailwind.readthedocs.io

Run these shell commands to accomplish the steps 1. to 5.:

# Clone the repository
git clone git@github.com:jwpconsulting/projectify.git
# Install dependencies
uv sync --all-groups
# Create your `.env` file
cp .env.template .env
# Edit the `.env` file using your preferred editor:
vim .env
# Inside .env, edit the DATABASE_URL, then save your changes.
# Create the database using the PostgreSQL `createdb` command
createdb projectify

Possible values for DATABASE_URL:

  • Connect via localhost: DATABASE_URL=postgres://$USER@localhost/projectify where $USER is your username.
  • Connect to UNIX domain socket on Debian: DATABASE_URL=postgres://%2Fvar%2Flib%2Fpostgresql/projectify
  • Connect to UNIX domain socket on macOS: DATABASE_URL=postgres://%2Ftmp/projectify

To finish with step 6., configure Projectify and run using the following commands:

# Run the Django migration command
uv run ./manage.py migrate
# Seed the database with test data using `seeddb`
uv run ./manage.py seeddb
# Start the development server
uv run ./manage.py runserver
# Open a new terminal and navigate to the repository again
# Install the tailwind development tool dependencies
npm clean-install
# Run the tailwind development tool
npm run dev

Once you have done all of this, go to Django administration page at http://localhost:8000/admin/. The seeddb command created an administrator account with the following credentials for you:

  • Username: admin@localhost
  • Password: password

Log in using these credentials and you have full access to the administration page.

Neovim

You can use Neovim with the Pyright Language Server Protococol (LSP) server. To make sure that Neovim uses the right Pyright from this repository, run neovim inside uv:

uv run nvim

uv

Here's how to update a specific package. Let's say you want to update the PyJWT package because of a vulnerability report (CVE-2026-32597). Run the following uv command to update the PyJWT version used in Projectiy:

uv lock -P pyjwt

You should see something like the following:

Resolved 114 packages in 491ms
Updated pyjwt v2.11.0 -> v2.12.1

Make sure to run bin/update-requirements afterwards. Updating PyJWT to version 2.12.1 results in the following diff for the requirements.txt file:

-pyjwt==2.11.0 \
    --hash=sha256:35f95c1f0fbe5d5ba6e43f00271c275f7a1a4db1dab27bf708073b75318ea623 \
    --hash=sha256:94a6bde30eb5c8e04fee991062b534071fd1439ef58d2adc9ccb823e7bcd0469
+pyjwt==2.12.1 \
    --hash=sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c \
    --hash=sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b

Formatting

uv run bin/format.sh

Copyright and licencing information

To look for files missing copyright and licencing information:

uv run reuse lint

Nix

You can use the included flake.nix Flake file to open a Nix Flake shell with all development dependencies:

  1. Download Nix: https://nixos.org/download/ (skip if you use NixOS)
  2. Enable Nix Flakes: https://wiki.nixos.org/wiki/Flakes#Enabling_flakes_permanently
  3. Open a Nix Flake shell by running nix shell in your terminal

Alternatively, configure direnv and nix-direnv to automatically jump into a Nix flake shell.

Translations

Projectify uses Django's built-in GNU gettext-based translation. Learn more about Django's translation features here.

You can update the translation files by running the following commands:

./manage.py makemessages --ignore=bin/ -l en --ignore='gunicorn.conf.py' --ignore=manage.py

License

Projectify is licensed under the GNU Affero General Public License Version 3 or later. Some third party dependencies are vendored in and available under their respective licenses. Please review the license files contained in the LICENSES directory located in the Projectify repository.

See AUTHORS.txt file for the list of contributors.

Projectify is a registered trademark by JWP Consulting GK.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

projectify_app-2026.3.28.tar.gz (9.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

projectify_app-2026.3.28-py3-none-any.whl (12.2 MB view details)

Uploaded Python 3

File details

Details for the file projectify_app-2026.3.28.tar.gz.

File metadata

  • Download URL: projectify_app-2026.3.28.tar.gz
  • Upload date:
  • Size: 9.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for projectify_app-2026.3.28.tar.gz
Algorithm Hash digest
SHA256 1f6b31db67658fc1eeaccce83554ba42d80393d03ab7f1f4299d16537473bc0d
MD5 0567bff02a9db4d799858a876afef85e
BLAKE2b-256 828500c797906befcde47ffac9b02ac96472772e845428a10fd862855be7409e

See more details on using hashes here.

File details

Details for the file projectify_app-2026.3.28-py3-none-any.whl.

File metadata

  • Download URL: projectify_app-2026.3.28-py3-none-any.whl
  • Upload date:
  • Size: 12.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for projectify_app-2026.3.28-py3-none-any.whl
Algorithm Hash digest
SHA256 03823e27dbe50b3441fd438226335c0f0128c9873664f23945e89889ad235f07
MD5 a75e4d6ce5b927cb5438b718ff3d775e
BLAKE2b-256 46a454f24291653037d628812c232de0c57d3c2db6f7e729716f4a797c19728c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page