{"id":42185170,"url":"https://github.com/hikaya-io/activity","last_synced_at":"2026-01-26T22:25:08.278Z","repository":{"id":34816381,"uuid":"153781627","full_name":"hikaya-io/activity","owner":"hikaya-io","description":"Making it easier for nonprofits to manage their project activities and indicators. Interested in contributing? Check out our open issues: https://tinyurl.com/activity-issues","archived":false,"fork":false,"pushed_at":"2024-01-16T15:33:07.000Z","size":57096,"stargazers_count":80,"open_issues_count":156,"forks_count":5,"subscribers_count":16,"default_branch":"develop","last_synced_at":"2024-04-14T13:04:02.282Z","etag":null,"topics":["django","django-rest-framework","docker","humanitarian","ict4d","indicators","kpi-indicator","monitoring-and-evaluation","ngo-data","nonprofit","nonprofits","project-management","python"],"latest_commit_sha":null,"homepage":"https://hikaya.io/products/activity/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hikaya-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":["hikaya-io"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2018-10-19T12:46:14.000Z","updated_at":"2024-02-21T15:09:47.000Z","dependencies_parsed_at":"2024-01-15T00:09:23.920Z","dependency_job_id":null,"html_url":"https://github.com/hikaya-io/activity","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/hikaya-io/activity","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hikaya-io%2Factivity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hikaya-io%2Factivity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hikaya-io%2Factivity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hikaya-io%2Factivity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hikaya-io","download_url":"https://codeload.github.com/hikaya-io/activity/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hikaya-io%2Factivity/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28789731,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T21:49:50.245Z","status":"ssl_error","status_checked_at":"2026-01-26T21:48:29.455Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["django","django-rest-framework","docker","humanitarian","ict4d","indicators","kpi-indicator","monitoring-and-evaluation","ngo-data","nonprofit","nonprofits","project-management","python"],"created_at":"2026-01-26T22:25:07.660Z","updated_at":"2026-01-26T22:25:08.271Z","avatar_url":"https://github.com/hikaya-io.png","language":"JavaScript","funding_links":["https://github.com/sponsors/hikaya-io"],"categories":[],"sub_categories":[],"readme":"\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://s3.hikaya.io/activity/activity-wordmark.png\" height=\"45\" /\u003e\n\u003c/p\u003e\n\n\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://codecov.io/gh/hikaya-io/activity\"\u003e\u003cimg src=\"https://codecov.io/gh/hikaya-io/activity/branch/dev/graph/badge.svg\" alt=\"Codecov badge\" /\u003e\u003c/a\u003e\n  \u003ca href='https://github.com/hikaya-io/activity/workflows/Activity/badge.svg'\u003e\u003cimg src='https://github.com/hikaya-io/activity/workflows/Activity/badge.svg' alt='GH Actions Status' /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\n  \u003ci\u003eA modern way for nonprofits to manage project activities and indicator results.\u003cbr/\u003eTry out Activity using our hosted version at \u003ca href=\"https://hikaya.io\"\u003ehikaya.io\u003c/a\u003e.\u003c/i\u003e\n  \u003cbr/\u003e\n  \u003cbr/\u003e\n  \u003cimg src=\"static/img/activity_home.png\" alt=\"Activity\" width=\"800\" /\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/hikaya-io/activity/discussions\" rel=\"nofollow\"\u003e\u003cimg src=\"https://img.shields.io/badge/join%20the%20community-in%20Discussions\u0026?style=for-the-badge\u0026logo=github\u0026color=4B3EF9\" alt=\"Join the community on Github Discussions\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nThis is the source code that runs the [**Activity**](https://hikaya.io/index#content4-8) application. If you want to use Activity then you don't need to run this code, we offer a hosted version of the app at [activity.hikaya.app](https://activity.hikaya.app).\n\nIf you'd like to run your own copy of Activity or contribute to its development, then this is the place for you.\n\n\u003cbr/\u003e\n\n# Getting started\n\n## Requirements and recommendations\n\n- Git\n- [Docker](https://docs.docker.com/get-docker/)\n- Python 3.7+, preferably inside a Python virtual environment ([virtualenv](https://virtualenv.pypa.io/en/latest/), [pipenv](https://pipenv.pypa.io/en/latest/) or others)\n- Make sure your dependencies are up-to-date. Update depdendencies with\n\n```bash\nsudo apt-get update \u0026\u0026 sudo apt-get -y upgrade # Linux\n\nbrew update \u0026\u0026 brew upgrade # Mac\n```\n\n## Recommended setup\n\n\u003e For the sake of similarity between developers environments and the deployment environments, we **strongly** recommend using Docker. For more details, see the Docker [installation guide](https://docs.docker.com/engine/install/).\n\n### Clone the repository and go to Activity directory\n\n```bash\ngit clone --branch develop https://github.com/hikaya-io/activity.git \u0026\u0026 cd activity\n```\n\n### Copy the settings file\n\n```bash\ncp settings/local-sample.py settings/local.py\n```\n\n### Launch Activity and its PostgreSQL database\n\n```bash\ndocker compose up -d\n```\n\nThis will:\n\n1. Pull needed Docker images\n2. Launch PostgreSQL\n3. Build and launch Activity\n4. Run database migrations on the PostgreSQL instance\n\nIt may take a while, but Activity should be accessible at `http://localhost:8080`\n\nThis setup is using the environment variables defined in the file `.env.docker-compose`.\nYou can read more about Activity's expected environments variables in our [installation guide](./docs/installation.md#envvars).\n\n## Post-installation\n\n1. Apply the [Django fixtures](https://docs.djangoproject.com/en/3.2/howto/initial-data/#providing-data-with-fixtures) defined in the `fixtures` folder:\n\n    ```bash\n    docker compose exec app python manage.py loaddata fixtures/auth_groups.json  # Add authorization groups\n    docker compose exec app python manage.py loaddata fixtures/countries.json  # Add countries\n    docker compose exec app python manage.py loaddata fixtures/sectors.json  # Add sectors\n    ```\n\n2. Create a Django superuser/admin\n\n   ```bash\n   docker compose exec app python manage.py createsuperuser\n   ```\n\n   You can now use it to login at http://localhost:8000/admin\n\n3. Signup with a new user on Activity. Activate it through Django Admin Dashboard on `http://localhost:8000/admin/workflow/activityuser/`\n\nYou can now set up your favourite reverse proxy and link a domain to expose the app to the public.\n\n# Hosting\n\nYou can use any cloud hosting provider of your choice. \nWe have used Digital Ocean and used App services to easily deploy the app. Here is the setup documentmention on Digital Ocean for [Django app](https://docs.digitalocean.com/products/app-platform/getting-started/sample-apps/django/). The Digital Ocean Basic plan of 512 MB RAM | 1 vCPU will suffice. Possible option for database config for the app: 1 GB RAM / 1vCPU / 10 GB Disk / Primary only / PostgreSQL 15.\n\nIf you want setup from a droplet here are the steps you can follow to set up deployment and hosting:\n\n1. Create an [account](https://cloud.digitalocean.com/registrations/new) on Digital Ocean.\n2. Create a [droplet](https://docs.digitalocean.com/products/droplets/how-to/create/). You can select a the Basic Ubuntu plan with at least 4GB RAM as Docker requires at least 4GB RAM droplet. RAM requirement can potentially be reduced by using Dockerhub.\n3. Add your SSH key as you create your droplet. This is required to access the server later.\n4. Once the droplet is created add your [domain and DNS information](https://docs.digitalocean.com/products/networking/dns/getting-started/quickstart/).\n5. Now your droplet is ready for adding your project data. On your local machine `cd` into the root project folder and [copy files](https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories) over to the server\n\n   ```bash\n   rsync -av -e \"ssh -i $LINK/TO/SSH_KEY/FILE/DIRECTORY\" PROJECT_FOLDER_NAME root@IP.ADDRESS:/root\n   ```\n\n6. SSH into your server to check if the files are copied correctly\n\n   ```bash\n   ssh -i $LINK/TO/SSH_KEY/FILE/DIRECTORY root@IP.ADDRESS\n   ```\n\n7. In your server, install docker. Here are the setup instructions for [Ubuntu](https://docs.docker.com/engine/install/ubuntu/)\n8. Copy the settings files\n\n   ```bash\n   cp settings/local-sample.py settings/local.py\n   ```\n\n9. Then build and run the project on docker\n\n    ```bash\n    docker compose up -d\n    ```\n\n10. You can check if containers are built correctly and running by running\n\n    ```bash\n    docker contain ls -a\n    ```\n\n11. Run through the 'post-installation' steps from the above section to make sure all the fixtures are in place.\n12. Make sure to add the [environment variables](https://docs.digitalocean.com/glossary/environment-variable/) on Digital Ocean.\n13. Your application should be ready and accessible on your domain.\n\n# Contributing\n\nActivity is built and maintained by the team at [Hikaya](https://hikaya.io/team).\n\nFeel free to checkout and learn more about:\n\n- Our [contribution guide](./CONTRIBUTING.md)\n- Our [development process](https://team.hikaya.io/start/development-process.html)\n\nWe are always looking for a fresh set of :eyes: who want to contribute to **Activity**, so if you are interested, you can reach out in our [issues board](https://github.com/hikaya-io/activity/issues) or [open a Github discussion](https://github.com/hikaya-io/activity/discussions) and we'll help you get started!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhikaya-io%2Factivity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhikaya-io%2Factivity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhikaya-io%2Factivity/lists"}