Tania is a free and open source farm management software. You can manage your farm areas, farm reservoirs, farm tasks, inventories, and the crop growing progress. It is designed for any type of farms.
You can try the live demo on demo-tania.tanibox.com. Don't worry, it's free.
Username: tania
Password: tania
Table of Contents
Getting Started
This software is built with Go programming language. It means you will get an executable binary to run on your machine. You don't need extra software like MAMP, XAMPP, or WAMP to run Tania, but you may need MySQL database if you choose to use it instead of SQLite (the default database.)
You will need to compile and build this software by yourself. We don't provide the pre-built executable binary (for this moment.) You can follow our instructions to build Tania.
Prerequisites
Building Instructions
- Make sure you have installed
golang/dep
- Clone the repo using
go get github.com/Tanibox/tania-core
- From the project root, call
dep ensure
to install the Go dependencies
- If you have an issue with
dep ensure
, you can call go get
instead.
- Create a new file
conf.json
using the values from the conf.json.example
and set it with your own values.
- Issue
npm install
to install VueJS dependencies.
- To build the VueJS, just run
npm run dev
for development purpose or npm run prod
for production purpose.
- Setup SQLite:
- Edit
SqlitePath
in conf.json
to your sqlite DB file path (ex: /Users/user/Programs/sqlite/tania.db)
- Create an empty file with the exact filename and path that match the
SqlitePath
config.
- Compile the source code with
go build
. It will produces tania-core.exe
(on Windows) or tania-core
(on Linux and OSX.)
- Run the program from Terminal by issuing
./tania-core
, or from Windows Command Prompt by issuing .\tania-core.exe
.
- The default username and password are
tania / tania
.
Database Engine
Tania uses SQLite as the default database engine. You may use MySQL as your database engine by replacing sqlite
with mysql
at tania_persistence_engine
field in your conf.json
.
{
"app_port": "8080",
"tania_persistence_engine": "mysql",
"demo_mode": true,
"upload_path_area": "uploads/areas",
"upload_path_crop": "uploads/crops",
"sqlite_path": "db/sqlite/tania.db",
"mysql_host": "localhost",
"mysql_port": "3306",
"mysql_dbname": "your_mysql_db_name",
"mysql_user": "your_mysql_user",
"mysql_password": "your_mysql_password",
"redirect_uri": [
"http://localhost:8080",
"http://127.0.0.1:8080"
],
"client_id": "f0ece679-3f53-463e-b624-73e83049d6ac"
}
Run The Test
- Use
go test ./...
to run all the Go tests.
- Use
npm run cypress:run
to run the end-to-end test
REST APIs
Tania have REST APIs to easily integrate with any softwares, even you can build a mobile app client for it. You can read the documentation here: Tania REST API.
Roadmap
We want to share our high-level details of our roadmap, so that others can see our priorities in Tania development. You can read our roadmap on the wiki.
Contributing to Tania
We welcome contributions, but request you to follow these guidelines.
Support Us
You can become a backer or a sponsor for Tania through our Open Collective page.
Backers
Become a backer with a monthly donation and help us continue our activities.
Become a sponsor and get your logo on our README on GitHub with a link to your site.
Authors
Tania is a project of Tanibox.
Copyright and License
Copyright to Tanibox and other contributors under Apache 2.0 open source license.