GeoCam is an open-source web application that aims to facilitate biodiversity studies that use autonomous data collection devices such as camera traps. This web-application is in development and offers several features that meet the needs of biodiversity stakeholders:
- project management: to delimit the studies according to their context
- management of study sites: to identify spatial scope
- device management: to specify technical characteristics of the tools used in the field and their availability
- deployment management: to characterize spatio-temporal limits of data acquisition
- media management: to standardize and optimize the storage of collected data
- media processing: to enable the addition of annotations to the raw data
We would be delighted if you use it, or even contribute in its development.
A demo is available here. Don't hesitate to try it out!
Documentation (in french for now): GeoCam documentation
Clone this project using git
Go inside the directory generated
Since this app has not been released yet, no commits are available on main
branch. Switch to dev
branch:
git checkout dev
Copy the .env.sample
inside the docker directory to .env
:
cp docker/.env.sample docker/.env
Edit freely this .env
file to change credentials for instance.
Docker and docker-compose must be installed on the server/machine. Then:
./scripts/docker.sh up -d
App will run on http://localhost:8889/
but the port of each service
will be avaible to debug.
Sample data can be generated by using the following command:
./scripts/docker.sh exec api python -c "from src.connectors.database import init_db; init_db()"
Tests are written with pytest and can be launched with the following command:
./scripts/docker.sh exec api pytest tests --cov-report html:/home/app/src/htmlcov --cov=src
The default config assumes that the backend is accessing the database through the docker network (via "db" adress) which prevents backend tests from being run locally (outside a container).
The openapi documentation accessible via swagger is available here:
http://localhost:8889/api/v1/docs
The documentation is generated with mkdocs and is exposed on port 8133 to be able to work on it with automatic reloading.
http://localhost:8133
- Use AI to help treating media on the fly
- Use keycloak to manage users and their rights
- Many other things!