# XPPL version alt
Library to hold books / knowledge 

## TO DOs
- [x] fix adding stacks
- [x] update requirements
- [ ] generate new requirements.txt and installation process?
- [ ] fix stacks layout
- [ ] remove autocomplete? and training at the start of app
- [ ] update layout navigation


## Installation

	sudo apt install python3-virtualenv
	sudo virtualenv venv
	source venv/bin/activate

	sudo chmod -R 777 XPPL/
	
	pip3 install flask
	pip3 install flask_sqlalchemy
	pip3 install marshmallow
	pip3 install flask_socketio
	pip3 install python-dotenv
	pip3 install flask_weasyprint
	pip3 install flask_wtf
	pip3 install wand
	pip3 install PyPDF2
	pip3 install requests
	pip3 install autocomplete

	sudo apt-get install libpangocairo-1.0-0
	sudo apt-get install libmagickwand-dev

	bash init_db.sh 


Install the required dependencies:

    $ pip3 install -r requirements.txt


Initialise database / Why is this needed again, could be checked in flask?

    $ bash init_db.sh


### Further install notes (bugs)

* create the covers folder inside the uploadsfolder
* don't forget to chmod the uploads and coverfolder ;-)

* For Mac users -> brew install imagemagick@6 in order to install wand (should not be relevant for debian server install)


## Run the program

Run the script in another terminal (from XPPL directory): 

    python3 run.py


## Deploy on server

(this will be added soon)



## REST API 

Has currently 2 entrypoints:

`/api/books`
GETs all the books in the database

`/api/book/id`
GETs a specific book by its id

