A cross-platform application for payroll administration. Spreadsheet based environment for processing timesheets through project administration, fit for use by small and medium organisations and enterprises.
Agiladmin is used internally at Dyne.org to document working hours, calculate budgets and pay co-workers based on monthly efforts.
Agiladmin accepts and renders xlsx
files to ease the integration with
the workflow of expert financial admins without disrupting their
tooling. It adopts Git as a backend to synchronise the collection of
timesheets. It leverages the power of Clojure in data-centric
applications to allow easy generation and customisation of graphics
and reports related to personnel and projects.
Agiladmin should be considered software in ALPHA stage and for now is only used internally at Dyne.org to manage research projects according to the EU Horizon 2020 financial guidelines.
Users should consider this a technological preview and Dyne.org staff may or may not be able to help adopting this software at this stage. We are working on more documentation and once in BETA stage we will offer training and support.
There are two ways to start Agiladmin, one is using docker and is recommended for development, another is locally using leiningen and is recommended for production.
Since agiladmin requires dependencies including a mongodb server for the authentication layer and the JVM it is handy to use docker to set it up for preview and for development. The procedure follows:
git clone https://github.com/dyne/agiladmin
git clone https://github.com/dyne/docker-dyne-software
cd docker-dyne-software/agiladmin
./build
At this point the agiladmin docker is built on your system, tagged as
dyne/agiladmin:latest
. To run it using as sourcecode the local
directory of agiladmin, so that modifications can go live while
coding, use:
./devel /home/user/path/to/agiladmin
This command will start the local copy of agiladmin source inside the
docker and make the port 3000
reachable to connect from the host.
The source of agiladmin will still need some configurations in order
to activate projects and a budgets
repository with excel sheets and
project configurations. Refer to the next section for details.
If an instance of Agiladmin is already setup then it can be cloned
locally for testing and development simply going on the
Configuration
tab and communicating the ssh public key to the admin
of the budgets git repository. Then Agiladmin should be configured
with that git repository.
To start agiladmin is enough to have leiningen installed, then run:
lein ring server
This application expects a configuration file to be present in the base of its source directory, called agiladmin.yaml
, example below:
# list of projects administered by agiladmin
# for each name there must be an equivalent config file
# in the configured budgets repository.
# see below for an example project config file
projects:
- TINFOIL
- DEVUAN
- ADMIN
# settings for the webserver running agiladmin
webserver:
anti-forgery: false
ssl-redirect: false
port: 8000
host: localhost
budgets:
# this is a git repository where all budgets are stored
# agiladmin creates commits on the git and reads from it
git: ssh://[email protected]/admin/budgets
# this is the name of the ssh private key authorised to
# access the git repository above. If not present will be
# generated by agiladmin, the public part available on its
# web interface under the "config" section
ssh-key: id_rsa
# this is where the budget git repo is cloned, relative to
# the sourcecode folder of agiladmin
path: budgets/
source:
# if automatic updates are activated, agiladmin will update
# its code from this git repository
git: https://github.com/dyne/agiladmin
update: no
# authentication configuration (smtp and mongodb)
just-auth:
email-server: "mail.dyne.org"
email-user: "xxxxxxxxxxxxxxxx"
email-pass: "xxxxxxxxxxxxxxxx"
email-address: "xxxxxxxxxxxxxxxx"
email-admin: "xxxxxxxxxxxxxxxx"
mongo-url: mongodb://localhost:27017/agiladmin
mongo-user: demo
mongo-pass: demo
Each project should also have its own configuration file, a commented example below:
# this is a small project example for agiladmin, to be placed
# in the budgets repository and called with the same project
# name as specified in the configuration, plus .yaml extension
DYNE:
# date when the project started
start_date: 01-01-1999
# duration in months
duration: 9999
# average cost per hour
cph: 30
# individual rates per hour
rates:
L.Blissett: 40
D.Maver: 30
# empty list of project tasks
tasks: []
A more complex project may contain also tasks with descriptions, start dates, duration and paid person-months (pm). In such cases the projects will have a "gantt" chart rendered to indicate the progress. Here an example of such a configuration:
SOFTWARE:
start_date: 01-12-2016
duration: 36
cph: 46.66
rates:
L.Blissett: 50
D.Maver: 43
tasks:
- id: T1.1
text: Distributed architecture specifications
start_date: 01-12-2016
duration: 36
pm: 2
- id: T1.2
text: Privacy Design Strategies
start_date: 01-12-2016
duration: 24
pm: 1
- id: T1.3
text: Lean methodology - use cases and requirements
pm: 1
start_date: 01-12-2016
duration: 36
- id: T4.5
text: Lean testing, continous integration, interoperability
pm: 2
start_date: 01-01-2018
duration: 24
- id: T5.1
text: Pilots specifications and implementation
pm: 2
start_date: 01-07-2017
duration: 30
- id: T6.1
text: Dissemination, Exploitation & Impact Assessment Strategy
pm: 1
start_date: 01-12-2016
duration: 36
- id: T6.2
text: Stakeholders engagement & co-creation methodologies
pm: 2
start_date: 01-12-2016
duration: 36
- id: T6.4
text: Open Standardization
pm: 1
start_date: 01-12-2016
duration: 36
Copyright (C) 2016-2019 Dyne.org foundation
Sourcecode written and maintained by Denis Roio [email protected]
Designed in cooperation with Manuela Annibali [email protected]
With reviews and contributions by Andrea D'Intino [email protected]
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.