Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/harmim/vut-iis-project
Informační systémy - Projekt
https://github.com/harmim/vut-iis-project
iis information-systems nette-framework php7 vut vut-fit
Last synced: about 1 month ago
JSON representation
Informační systémy - Projekt
- Host: GitHub
- URL: https://github.com/harmim/vut-iis-project
- Owner: harmim
- License: mit
- Created: 2018-09-24T16:25:12.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-12-02T23:05:01.000Z (about 6 years ago)
- Last Synced: 2024-11-05T14:56:09.819Z (3 months ago)
- Topics: iis, information-systems, nette-framework, php7, vut, vut-fit
- Language: PHP
- Homepage:
- Size: 1.34 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.html
- License: LICENSE
Awesome Lists containing this project
README
@font-face {
font-family: octicons-anchor;
src: url(https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/font/octicons.woff) format('woff');
}* {
box-sizing: border-box;
}body {
width: 980px;
margin-right: auto;
margin-left: auto;
}body .markdown-body {
padding: 45px;
border: 1px solid #ddd;
border-radius: 3px;
word-wrap: break-word;
}pre {
font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace;
}.markdown-body {
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
color: #333;
font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-size: 16px;
line-height: 1.6;
word-wrap: break-word;
}.markdown-body a {
background-color: transparent;
}.markdown-body a:active,
.markdown-body a:hover {
outline: 0;
}.markdown-body strong {
font-weight: bold;
}.markdown-body h1 {
font-size: 2em;
margin: 0.67em 0;
}.markdown-body img {
border: 0;
}.markdown-body hr {
box-sizing: content-box;
height: 0;
}.markdown-body pre {
overflow: auto;
}.markdown-body code,
.markdown-body kbd,
.markdown-body pre {
font-family: monospace, monospace;
font-size: 1em;
}.markdown-body input {
color: inherit;
font: inherit;
margin: 0;
}.markdown-body html input[disabled] {
cursor: default;
}.markdown-body input {
line-height: normal;
}.markdown-body input[type="checkbox"] {
box-sizing: border-box;
padding: 0;
}.markdown-body table {
border-collapse: collapse;
border-spacing: 0;
}.markdown-body td,
.markdown-body th {
padding: 0;
}.markdown-body input {
font: 13px / 1.4 Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}.markdown-body a {
color: #4078c0;
text-decoration: none;
}.markdown-body a:hover,
.markdown-body a:active {
text-decoration: underline;
}.markdown-body hr {
height: 0;
margin: 15px 0;
overflow: hidden;
background: transparent;
border: 0;
border-bottom: 1px solid #ddd;
}.markdown-body hr:before {
display: table;
content: "";
}.markdown-body hr:after {
display: table;
clear: both;
content: "";
}.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
margin-top: 15px;
margin-bottom: 15px;
line-height: 1.1;
}.markdown-body h1 {
font-size: 30px;
}.markdown-body h2 {
font-size: 21px;
}.markdown-body h3 {
font-size: 16px;
}.markdown-body h4 {
font-size: 14px;
}.markdown-body h5 {
font-size: 12px;
}.markdown-body h6 {
font-size: 11px;
}.markdown-body blockquote {
margin: 0;
}.markdown-body ul,
.markdown-body ol {
padding: 0;
margin-top: 0;
margin-bottom: 0;
}.markdown-body ol ol,
.markdown-body ul ol {
list-style-type: lower-roman;
}.markdown-body ul ul ol,
.markdown-body ul ol ol,
.markdown-body ol ul ol,
.markdown-body ol ol ol {
list-style-type: lower-alpha;
}.markdown-body dd {
margin-left: 0;
}.markdown-body code {
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
font-size: 12px;
}.markdown-body pre {
margin-top: 0;
margin-bottom: 0;
font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace;
}.markdown-body .select::-ms-expand {
opacity: 0;
}.markdown-body .octicon {
font: normal normal normal 16px/1 octicons-anchor;
display: inline-block;
text-decoration: none;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}.markdown-body .octicon-link:before {
content: '\f05c';
}.markdown-body:before {
display: table;
content: "";
}.markdown-body:after {
display: table;
clear: both;
content: "";
}.markdown-body>*:first-child {
margin-top: 0 !important;
}.markdown-body>*:last-child {
margin-bottom: 0 !important;
}.markdown-body a:not([href]) {
color: inherit;
text-decoration: none;
}.markdown-body .anchor {
display: inline-block;
padding-right: 2px;
margin-left: -18px;
}.markdown-body .anchor:focus {
outline: none;
}.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
margin-top: 1em;
margin-bottom: 16px;
font-weight: bold;
line-height: 1.4;
}.markdown-body h1 .octicon-link,
.markdown-body h2 .octicon-link,
.markdown-body h3 .octicon-link,
.markdown-body h4 .octicon-link,
.markdown-body h5 .octicon-link,
.markdown-body h6 .octicon-link {
color: #000;
vertical-align: middle;
visibility: hidden;
}.markdown-body h1:hover .anchor,
.markdown-body h2:hover .anchor,
.markdown-body h3:hover .anchor,
.markdown-body h4:hover .anchor,
.markdown-body h5:hover .anchor,
.markdown-body h6:hover .anchor {
text-decoration: none;
}.markdown-body h1:hover .anchor .octicon-link,
.markdown-body h2:hover .anchor .octicon-link,
.markdown-body h3:hover .anchor .octicon-link,
.markdown-body h4:hover .anchor .octicon-link,
.markdown-body h5:hover .anchor .octicon-link,
.markdown-body h6:hover .anchor .octicon-link {
visibility: visible;
}.markdown-body h1 {
padding-bottom: 0.3em;
font-size: 2.25em;
line-height: 1.2;
border-bottom: 1px solid #eee;
}.markdown-body h1 .anchor {
line-height: 1;
}.markdown-body h2 {
padding-bottom: 0.3em;
font-size: 1.75em;
line-height: 1.225;
border-bottom: 1px solid #eee;
}.markdown-body h2 .anchor {
line-height: 1;
}.markdown-body h3 {
font-size: 1.5em;
line-height: 1.43;
}.markdown-body h3 .anchor {
line-height: 1.2;
}.markdown-body h4 {
font-size: 1.25em;
}.markdown-body h4 .anchor {
line-height: 1.2;
}.markdown-body h5 {
font-size: 1em;
}.markdown-body h5 .anchor {
line-height: 1.1;
}.markdown-body h6 {
font-size: 1em;
color: #777;
}.markdown-body h6 .anchor {
line-height: 1.1;
}.markdown-body p,
.markdown-body blockquote,
.markdown-body ul,
.markdown-body ol,
.markdown-body dl,
.markdown-body table,
.markdown-body pre {
margin-top: 0;
margin-bottom: 16px;
}.markdown-body hr {
height: 4px;
padding: 0;
margin: 16px 0;
background-color: #e7e7e7;
border: 0 none;
}.markdown-body ul,
.markdown-body ol {
padding-left: 2em;
}.markdown-body ul ul,
.markdown-body ul ol,
.markdown-body ol ol,
.markdown-body ol ul {
margin-top: 0;
margin-bottom: 0;
}.markdown-body li>p {
margin-top: 16px;
}.markdown-body dl {
padding: 0;
}.markdown-body dl dt {
padding: 0;
margin-top: 16px;
font-size: 1em;
font-style: italic;
font-weight: bold;
}.markdown-body dl dd {
padding: 0 16px;
margin-bottom: 16px;
}.markdown-body blockquote {
padding: 0 15px;
color: #777;
border-left: 4px solid #ddd;
}.markdown-body blockquote>:first-child {
margin-top: 0;
}.markdown-body blockquote>:last-child {
margin-bottom: 0;
}.markdown-body table {
display: block;
width: 100%;
overflow: auto;
word-break: normal;
word-break: keep-all;
}.markdown-body table th {
font-weight: bold;
}.markdown-body table th,
.markdown-body table td {
padding: 6px 13px;
border: 1px solid #ddd;
}.markdown-body table tr {
background-color: #fff;
border-top: 1px solid #ccc;
}.markdown-body table tr:nth-child(2n) {
background-color: #f8f8f8;
}.markdown-body img {
max-width: 100%;
box-sizing: content-box;
background-color: #fff;
}.markdown-body code {
padding: 0;
padding-top: 0.2em;
padding-bottom: 0.2em;
margin: 0;
font-size: 85%;
background-color: rgba(0,0,0,0.04);
border-radius: 3px;
}.markdown-body code:before,
.markdown-body code:after {
letter-spacing: -0.2em;
content: "\00a0";
}.markdown-body pre>code {
padding: 0;
margin: 0;
font-size: 100%;
word-break: normal;
white-space: pre;
background: transparent;
border: 0;
}.markdown-body .highlight {
margin-bottom: 16px;
}.markdown-body .highlight pre,
.markdown-body pre {
padding: 16px;
overflow: auto;
font-size: 85%;
line-height: 1.45;
background-color: #f7f7f7;
border-radius: 3px;
}.markdown-body .highlight pre {
margin-bottom: 0;
word-break: normal;
}.markdown-body pre {
word-wrap: normal;
}.markdown-body pre code {
display: inline;
max-width: initial;
padding: 0;
margin: 0;
overflow: initial;
line-height: inherit;
word-wrap: normal;
background-color: transparent;
border: 0;
}.markdown-body pre code:before,
.markdown-body pre code:after {
content: normal;
}.markdown-body kbd {
display: inline-block;
padding: 3px 5px;
font-size: 11px;
line-height: 10px;
color: #555;
vertical-align: middle;
background-color: #fcfcfc;
border: solid 1px #ccc;
border-bottom-color: #bbb;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #bbb;
}.markdown-body .pl-c {
color: #969896;
}.markdown-body .pl-c1,
.markdown-body .pl-s .pl-v {
color: #0086b3;
}.markdown-body .pl-e,
.markdown-body .pl-en {
color: #795da3;
}.markdown-body .pl-s .pl-s1,
.markdown-body .pl-smi {
color: #333;
}.markdown-body .pl-ent {
color: #63a35c;
}.markdown-body .pl-k {
color: #a71d5d;
}.markdown-body .pl-pds,
.markdown-body .pl-s,
.markdown-body .pl-s .pl-pse .pl-s1,
.markdown-body .pl-sr,
.markdown-body .pl-sr .pl-cce,
.markdown-body .pl-sr .pl-sra,
.markdown-body .pl-sr .pl-sre {
color: #183691;
}.markdown-body .pl-v {
color: #ed6a43;
}.markdown-body .pl-id {
color: #b52a1d;
}.markdown-body .pl-ii {
background-color: #b52a1d;
color: #f8f8f8;
}.markdown-body .pl-sr .pl-cce {
color: #63a35c;
font-weight: bold;
}.markdown-body .pl-ml {
color: #693a17;
}.markdown-body .pl-mh,
.markdown-body .pl-mh .pl-en,
.markdown-body .pl-ms {
color: #1d3e81;
font-weight: bold;
}.markdown-body .pl-mq {
color: #008080;
}.markdown-body .pl-mi {
color: #333;
font-style: italic;
}.markdown-body .pl-mb {
color: #333;
font-weight: bold;
}.markdown-body .pl-md {
background-color: #ffecec;
color: #bd2c00;
}.markdown-body .pl-mi1 {
background-color: #eaffea;
color: #55a532;
}.markdown-body .pl-mdr {
color: #795da3;
font-weight: bold;
}.markdown-body .pl-mo {
color: #1d3e81;
}.markdown-body kbd {
display: inline-block;
padding: 3px 5px;
font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace;
line-height: 10px;
color: #555;
vertical-align: middle;
background-color: #fcfcfc;
border: solid 1px #ccc;
border-bottom-color: #bbb;
border-radius: 3px;
box-shadow: inset 0 -1px 0 #bbb;
}.markdown-body .plan-price-unit {
color: #767676;
font-weight: normal;
}.markdown-body .task-list-item {
list-style-type: none;
}.markdown-body .task-list-item+.task-list-item {
margin-top: 3px;
}.markdown-body .task-list-item input {
margin: 0 0.35em 0.25em -1.6em;
vertical-align: middle;
}.markdown-body .plan-choice {
padding: 15px;
padding-left: 40px;
display: block;
border: 1px solid #e0e0e0;
position: relative;
font-weight: normal;
background-color: #fafafa;
}.markdown-body .plan-choice.open {
background-color: #fff;
}.markdown-body .plan-choice.open .plan-choice-seat-breakdown {
display: block;
}.markdown-body .plan-choice-free {
border-radius: 3px 3px 0 0;
}.markdown-body .plan-choice-paid {
border-radius: 0 0 3px 3px;
border-top: 0;
margin-bottom: 20px;
}.markdown-body .plan-choice-radio {
position: absolute;
left: 15px;
top: 18px;
}.markdown-body .plan-choice-exp {
color: #999;
font-size: 12px;
margin-top: 5px;
}.markdown-body .plan-choice-seat-breakdown {
margin-top: 10px;
display: none;
}.markdown-body :checked+.radio-label {
z-index: 1;
position: relative;
border-color: #4078c0;
}@media print {
body .markdown-body {
padding: 0;
border: none;
}
}
README
Informační systémy - Projekt
Půjčovna kostýmů (založeno na zadání č. 10 z kursu IUS)
Autoři
- Dominik Harmim [email protected]
- Matúš Burzala [email protected]
Dokumentace
Dokumentace projektu se nachází v ./doc/doc.html
.
Databáze
SQL skript pro inicializaci schématu databáze se nachází v ./sql/create_db.sql
.
Struktura projektu
-
./app/
Jádro systému. PHP skripty a třídy, konfigurační NEON soubory. Latte šablony.-
./app/config/
Konfigurační NEON soubory systému. -
./app/*Module/
Jednotlivé moduly systému. Tento adresář obsahuje konfigurační NEON soubor pro daný modul,
adresářControls
pro komponenty,Model
pro modelové třídy,Presenters
pro presentery (kontrolery) atemplates
pro Latte šablony. -
./app/bootstrap.php
výchozí skript s nastavením konfigrace celého systému.
-
-
./doc/
Dokumentace. -
./docker/
Nastavení Docker. -
./libs/
PHP třídy, které modifikují nebo rozšiřují chování Nette framework. -
./log/
Chybové záznamy systému ("logy"). -
./node_modules/
JavaScript knihovny nainstalované přes NPM. Slouží k nastavení a stahování JavaScript a CSS
závislostí systému. -
./sql/
SQL skripty.-
./sql/create_db.sql
Skript pro inicializaci databáze.
-
-
./temp/
Dočasné soubory systému. -
./vednor/
PHP knihovny nainstalované přes Composer. -
./www/
Kořenový adresář přístupný z webu.-
./www/img/
Obrázky. -
./www/js/
JavaScript skripty. -
./www/styles/
CSS soubory. -
./www/index.php
Výchozí PHP skript spuštěný při spuštění systému.
-
-
./.bowerrc
Konfigurace nástroje Bower použitého na stahování JavaScript a CSS závislostí systému. -
./.gitignore
Ignorované soubory verzovacím systémem Git. -
./.htaccess
Výchozí konfigurace webového serveru Apache pro celý systém. -
./bower.json
Definice používaných JavaScript a CSS knihoven nástrojem Bower. -
./coding-standard.yml
Nastavení nástrojenette/coding-standard
pro kontrolu stylu PHP kódu. -
./composer.json
Definice používaných PHP knihoven, verze PHP a způsobu automatického načítání PHP souborů
nástrojem Composer. -
./composer.lock
Pomocný soubor pro nástroj Composer. -
./docker-compose.override.sample.yml
Vzorový konfigurační soubor pro lokální modifikaci konfigurace Docker. -
./docker-compose.yml
Konfigurační soubor pro Docker. -
./Gruntfile.js
JavaScript skript pro správu a stahování JavaScript a CSS závislostí systému.
(Konfigurační soubor nástroje Grunt.) -
./LICENSE
Licence. -
./Makefile
Soubor pro správu systému programem make. -
./package.json
Definice používaných JavaScript knihoven pro stahování JavaScript a CSS závislostí systému
nástrojem NPM. -
./package-lock.json
Pomocný soubor pro nástroj NPM. -
./phpstan.neon
Nastavení nástroje phpstan pro statickou analýzu PHP kódu. -
./README.md
README se základními informacemi o systému. -
./README.html
README ve formátu HTML.
Požadavky (obecné)
-
Git. (Pro stažení repositáře.)
Požadavky (bez použití Docker)
- Webový server, např. Apache nebo Nginx +
MySQL nebo MariaDB +
PHP >= 7.2. Možno nainstalovat zvlášť nebo nainstalovat
XAMPP nebo třeba WAMP. -
Composer. (Pro správu PHP zavislostí.) -
NodeJS. (Pro správu JavaScript balíčků pro stahování JavaScript a CSS knihoven.)
Požadavky (s použitím Docker)
-
Docker nebo přes
Docker Desktop. -
Docker Compose.
Nastavení (obecné)
Nastavení DNS
- Doména
vut-iis-project.localhost.com
musí směrovat na localhost (127.0.0.1).
Lze to udělat např. editací souboru/etc/hosts
, respektive (C:\Windows\System32\Drivers\etc\hosts
).
Nebo je možné použít programdnsmasq
kde je možné
nastavit, aby celé skupiny domén směrovaly na localhost, např. všechny domény, které mají ve svém
názvu řetězeclocalhost
. Návod pro Mac.
Nebo je také možné nainstalovat sidnsmasq
přes Docker.
Stažení repositáře
Přes SSH
$ git clone [email protected]:harmim/vut-iis-project.git ~/cesta/k/repositari
nebo přes HTTPS.
$ git clone https://github.com/harmim/vut-iis-project.git ~/cesta/k/repositari
Nastavení (bez použití Docker)
Nastavení virtual host
V konfiguračím souboru Apache, např. /usr/local/etc/httpd/extra/httpd-vhosts.conf
.
<VirtualHost *:80>
ServerName vut-iis-project.localhost.com
DocumentRoot "~/cesta/k/repositari"
SetEnv IIS_DEBUG 1
</VirtualHost>
Nastavení (s použitím Docker)
Nginx-proxy
Nastavení Nginx proxy serveru, přes který se budeme připojovat k systému a který bude proxy na Apach server.
- Vytvoření souboru
~/docker-compose.yml
např. v domovském adresáři:
version: '3'
services:
nginx-proxy:
image: jwilder/nginx-proxy
ports:
- 80:80
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
restart: always
networks:
default:
external:
name: nginx-proxy
$ docker network create nginx-proxy
$ (cd ~ && docker-compose up -d)
Tato Nginx proxy se teď bude spouštět vždy po restartu Docker automaticky.
Instalace (bez použití Docker)
$ make DOCKER=0
Nastavení vlastní databáze
$ cp app/config/local.sample.neon app/config/local.neon
- Nastavení údajů k vlastní databázi v souboru
app/config/loocal.neon
.
Instalace (s použitím docker)
$ cp docker-compose.override.sample.yml docker-compose.override.yml
-
Změna konfigurace v souboru
docker-compose.override.yml
, např. nastaveníXDEBUG_CONFIG
nadocker.for.win.localhost
pro Windows. -
$ docker-compose up -d
(pro vypnutí Docker kontejneru $ docker-compose down
)
$ make
Make příkazy
U každého příkazu je možné uvést DOCKER=1/0
pro používání/nepoužívaní Docker, např. $ make install DOCKER=0
.
Výchozí hodnota je 1
.
U kažédho příkazu je možné uvést PRODUCTION=1/0
pro nastavení knihoven pro produkční/vývojový server,
např. $ make install PRODUCTION=1
. Výchozí hodnota je 0
.
-
install
composer
+assets
. Výchozí cíl. -
composer
Instalace PHP knihoven a vygenerování souboru pro automatické načítání PHP souborů. -
assets
npm
+bower
+grunt
. -
npm
Instalace JavaScript knihoven přes NPM pro nastavování a stahování JavaScript a CSS knihoven systému. -
bower
Instalace JavaScript a CSS knihoven přes Bower. -
grunt
Kopírování a nastavování (minifikace, aj.) JavaScript a CSS knihoven systému. -
code-checker
Spuštění kontroly validity PHP kódu. -
coding-standard
Spuštění kontroly stylu PHP kódu. -
phpstan
Spuštění statické analýzy PHP kódu. -
clean
Odstranení všech dočasných souborů. -
clean-cache
Ostranění dočasných souborů Nette framework. -
pack
Vytvoření archívu pro odevzdání.