mirror of
https://github.com/ToxicCrack/PrintABrick.git
synced 2025-05-16 12:20:09 -07:00
# Website for printable building kits
A Symfony project
Install
System requirements
- PHP needs to be a minimum version of PHP 7.0
- PHP Extensions
- FTP
- SOAP
- GD
- PDO
- Zip
- date.timezone setting set in php.ini
You can check if your system meets requirements by running $ bin/symfony_requirements
For full requirements see Symfony 3.2 docs.
Required
-
Elasticsearch
Instructions for installing and deploying Elasticsearch may be found here.
-
POV-Ray
-
stl2pov source.
-
ADMesh source.
-
LDView OSMesa >= 4.2.1 source.
Installing
Back-end
- Make sure your system meets the application requirements
- Install dependencies via Composer,
$ composer install
Front-end
- Install dependencies via npm,
$ npm install
- Install bower dependencies via bower,
$ bower install
- Compile assets by running Gulp,
$ gulp
Initialization
Setup database
- Set application parameters in app/config/parameters.yml
- Generate an empty database by running command (if it does not yet exist)
$ bin/console doctrine:database:create
- Create database tables/schema by running command
$ bin/console doctrine:schema:create
- Load database fixtures
$ bin/console doctrine:fixtures:load
Load data
You can load initial application data by running command $ bin/console app:init
This command consists of multiple subcommands that can be called separately:
- Load LDraw models into database by running commad
$ bin/console app:load:models [--ldraw=PATH] [--all] [--file=FILE] [--update]
- Load Rebrickable data into database by running command
$ bin/console app:load:rebrickable
- Load relations between LDraw models and Rebrickable parts by running command
$ bin/console app:load:relation
- Download images of models from rebrickable.com
$ bin/console app:load:images [--color=INT] [--rebrickable] [--missing]
- Populate Elastisearch index
$ bin/console fos:elastica:populate
Testing
You can run complete system tests by $ phpunit
. These should cover the main system functions and the functionality of calling the third-party programs that are required are needed to seamlessly retrieve the necessary application data.
Languages
PHP
78.7%
Twig
15.5%
JavaScript
3.1%
SCSS
2.1%
Dockerfile
0.4%
Other
0.2%