# Tilo A visual explorer for the biological Tree of Life. ## Project Overview The UI is largely coded in Typescript, using the [Vue](https://vuejs.org) framework, with [Vite](https://vitejs.dev) as the build tool. Much of the styling is done using [Tailwind](https://tailwindcss.com). Packages are managed using [npm](https://www.npmjs.com) and [Node.js](https://nodejs.org). On the server side, tree data is served and generated using Python, with packages managed using [Pip](https://pypi.org/project/pip). Tree data is stored using [Sqlite](https://www.sqlite.org). ## Files ### Project Level - **package.json**: Contains npm project information, such as package dependencies. - **package-lock.json**: Auto-generated by npm. Used for replicable installations. - **LICENCE.txt**: This project's license (MIT). - **.gitignore**: Lists files to be ignored if using [Git](https://git-scm.com/downloads). ### Client & Server - **src**: Contains most of the client-side code. - **index.html**: Holds code for the main page, into which code from 'src' will be included. - **public**: Contains files to be copied unchanged in the production-build of the UI. - **backend**: Contains code for the server, and for generating tree-of-life data. ### Configuration - **vite.config.js**: For configuring Vite. - **tailwind.config.js**: For configuring Tailwind. - **postcss.config.js**: For configuring Tailwind. - **tsconfig.json**: For configuring Typescript. ## Setup Instructions Note: Running your own version of the client and server should be straightforward, but generating the database will take a long time. More details are in backend/data/README.md. ### Client Side 1. If you don't have npm or Node.js installed, you can download a Node installer from , which includes npm. This project was coded using version 16. 1. In this directory, run the command `npm install`, which install packages listed in package.json, creating a `node_modules` directory to hold them. ### Server Side 1. If you don't have Python 3 installed, see . The package manager Pip is included. 1. The database used by the server is generated using scripts in backend/data/. See it's README.md for instructions. You'll likely need to install a few packages using Pip. 1. To run the dev server, you'll need to install jsonpickle. This can be done using `python -m pip install jsonpickle`. If you want to keep the installed package separate from your system's packages, it's common practice to use the 'venv' module. ### Running Tilo 1. In the backend/ directory, run `./server.py`, which starts a basic HTTP server that provides tree-of-life data on port 8000. 1. In this directory, or somewhere in src/, run `npm run dev`. This starts a dev server that provides Tilo's user interface on port 3000. 1. Open a web browser, and navigate to . ## Licence Tilo is licensed under the MIT licence, provided in LICENSE.txt