- Notifications
You must be signed in to change notification settings - Fork5
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
License
hikaya-io/activity
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A modern way for nonprofits to manage project activities and indicator results.
Try out Activity using our hosted version athikaya.io.
This is the source code that runs theActivity application. If you want to use Activity then you don't need to run this code, we offer a hosted version of the app atactivity.hikaya.app.
If you'd like to run your own copy of Activity or contribute to its development, then this is the place for you.
- Git
- Docker
- Python 3.7+, preferably inside a Python virtual environment (virtualenv,pipenv or others)
- Make sure your dependencies are up-to-date. Update depdendencies with
sudo apt-get update&& sudo apt-get -y upgrade# Linuxbrew update&& brew upgrade# Mac
For the sake of similarity between developers environments and the deployment environments, westrongly recommend using Docker. For more details, see the Dockerinstallation guide.
git clone --branch develop https://github.com/hikaya-io/activity.git&&cd activity
cp settings/local-sample.py settings/local.py
docker compose up -d
This will:
- Pull needed Docker images
- Launch PostgreSQL
- Build and launch Activity
- Run database migrations on the PostgreSQL instance
It may take a while, but Activity should be accessible athttp://localhost:8080
This setup is using the environment variables defined in the file.env.docker-compose
.You can read more about Activity's expected environments variables in ourinstallation guide.
Apply theDjango fixtures defined in the
fixtures
folder:docker composeexec app python manage.py loaddata fixtures/auth_groups.json# Add authorization groupsdocker composeexec app python manage.py loaddata fixtures/countries.json# Add countriesdocker composeexec app python manage.py loaddata fixtures/sectors.json# Add sectors
Create a Django superuser/admin
docker composeexec app python manage.py createsuperuser
You can now use it to login athttp://localhost:8000/admin
Signup with a new user on Activity. Activate it through Django Admin Dashboard on
http://localhost:8000/admin/workflow/activityuser/
You can now set up your favourite reverse proxy and link a domain to expose the app to the public.
You can use any cloud hosting provider of your choice.We have used Digital Ocean and used App services to easily deploy the app. Here is the setup documentmention on Digital Ocean forDjango app. 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.
If you want setup from a droplet here are the steps you can follow to set up deployment and hosting:
Create anaccount on Digital Ocean.
Create adroplet. 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.
Add your SSH key as you create your droplet. This is required to access the server later.
Once the droplet is created add yourdomain and DNS information.
Now your droplet is ready for adding your project data. On your local machine
cd
into the root project folder andcopy files over to the serverrsync -av -e"ssh -i$LINK/TO/SSH_KEY/FILE/DIRECTORY" PROJECT_FOLDER_NAME root@IP.ADDRESS:/root
SSH into your server to check if the files are copied correctly
ssh -i$LINK/TO/SSH_KEY/FILE/DIRECTORY root@IP.ADDRESS
In your server, install docker. Here are the setup instructions forUbuntu
Copy the settings files
cp settings/local-sample.py settings/local.py
Then build and run the project on docker
docker compose up -d
You can check if containers are built correctly and running by running
docker contain ls -a
Run through the 'post-installation' steps from the above section to make sure all the fixtures are in place.
Make sure to add theenvironment variables on Digital Ocean.
Your application should be ready and accessible on your domain.
Activity is built and maintained by the team atHikaya.
Feel free to checkout and learn more about:
We are always looking for a fresh set of 👀 who want to contribute toActivity, so if you are interested, you can reach out in ourissues board oropen a Github discussion and we'll help you get started!
About
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