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.27.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.27-py3-none-any.whl (12.2 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: projectify_app-2026.3.27.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.27.tar.gz
Algorithm Hash digest
SHA256 d146f5f82512047002523a5ca7cb95e9a660e891556347c0121f3fdfea84e6d2
MD5 6bd00c223b133bda4366a07a8eb0bf05
BLAKE2b-256 93c826f104a91f47a0fb13053ccad8b8bd0b54ef205121481f9516851508e4ec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: projectify_app-2026.3.27-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.27-py3-none-any.whl
Algorithm Hash digest
SHA256 d41c3346cec6df1befb5652763770b19dd5817f0a1f15d8d9f786ccfd4560b90
MD5 bca8cedb024173585d58b6d0d1bc6a90
BLAKE2b-256 54f5b1a73bb74ae60bc2f27beadad264f4d787f7ef85d5f2e301df7f6bad37cc

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