# Vision
[](https://gitlab.com/gamexperience/vision-dev/-/commits/master)
This is a web panel to allow roleplay server to have an common interface for all publics services
## Requirements
- Php ^8.0
- Php extensions : bz2, curl, fileinfo, gd, intl, mbstring, mysqli, openssl, pdo_mysql, xsl
- Git (easier way to install and update)
- Composer ()
- An SQL server
- A mail server (or a smtp to send mail)
- Donuts (because cops will use this panel)
## Installation
1. Clone the repo with the tool of your choice
2. Enter the folder created
3. Copy the "dotEnvDemo" file to ".env", and set all required informations
4. Install all dependencies with composer
```bash
composer install --no-scripts
```
5. Setup the database with symfony commands
> info: If you use the symfony cli, you can replace "php bin/console" by
> "symfony console"
```bash
php bin/console doctrine:database:create
php bin/console doctrine:migrations:migrate
```
> info: if you start your database with docker-compose, the database is
> already created, so ignore the "doctrine:database:create" command
6. Add a new group to Vision
```bash
php bin/console vision:addgroup
```
7. Add a new rank to this new group
```bash
php bin/console vision:addrank
```
8. Add a new user to vision, and choose group and rank
```bash
php bin/console vision:adduser
```
info : the user is created with a random password, so at first time, you need to reset your password before login
info : If this is your admin account; dont forget to answer yes while asking if user is admin
9. Start vision the way you want !
with symfony cli:
```bash
symfony serve
```
or with php dev server :
```bash
php -S localhost:8000 -t public
```
and navigate to localhost:8000 with your web browser
## Update
1. Enter the folder containing Vision
2. update by pulling the repo
```bash
git pull
```
3. update the database with symfony commands
```bash
php bin/console doctrine:migrations:migrate
```
4. clear cache
```bash
php bin/console cache:clear
```
## Scalability
Vision is ready to be used in scaled architecture :
- user's sessions are stored in database
- just share the "public\uploads" folder between Visions instances to get uploaded files accross instances
## Suggest an idea
Feel free to suggest your idea !
> [Open an Enhancement issue ! click here](https://gitlab.com/gamexperience/vision-dev/-/issues/new?issuable_template=Enhancement)
## Report a bug
You found something wrong on Vision ?
> [Open an a bug issue ! click here](https://gitlab.com/gamexperience/vision-dev/-/issues/new?issuable_template=Bug)
## Contributing
Contributions are always welcome!
Start by installing Vision on your computer, then create a .env.local file with
```env
APP_ENV=dev
```
Then, our way to do it :
1. install docker and docker compose on your computer
(example: )
2. install symfony cli on your computer
3. use docker-compose to run a mysql server and MailDev
```bash
docker-compose up -d
```
4. Setup database : read #5 on installation part
you can also do the #6 - #7 to create groups and ranks, or use inclued fixtures :
```bash
symfony console d:f:l
```
5. Create your first Admin user : read #8 on installation part
6. start the symfony web server
```bash
symfony serve
```
with docker and symfony serve, symfony app will communicate the best way with docker
## Base idea by
- [@Xbird_](https://twitter.com/xbird_)
- @Ajanvier
# Thanks
Thanks to all contributors of Vision
We want to thanks too the community of the French Roleplay server [GTRP](https://www.gtrp.co/), [with a special message](gtrp.co.md)
## Sources
- Symfony and packages : list in composer.json
- Logo font :
- Logo Icon : [@Xbird_](https://twitter.com/xbird_) with icon from FontAwesome
- Design :
- Icons : cryptofont - feather - fontawesome - material
- Wysiwyg editor : TinyMCE
- Lightbox : Ekko Lightbox