diff --git a/backend/go_mysql/main.go b/backend/go_mysql/main.go
new file mode 100644
index 0000000..20eaada
--- /dev/null
+++ b/backend/go_mysql/main.go
@@ -0,0 +1,58 @@
+package main
+
+import (
+ "database/sql"
+ "fmt"
+
+ _ "github.com/go-sql-driver/mysql"
+)
+
+type User struct {
+ Name string `json:"name"`
+}
+
+type User2 struct {
+ Name string `json:"name8"`
+ Name2 string `json:"name8"`
+}
+
+func main() {
+ fmt.Println("Go Mysql Tutorial")
+
+ db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/testdb")
+ if err != nil {
+ panic(err.Error())
+ }
+
+ fmt.Println("Succesfully Connected to MySQL database")
+ defer db.Close() //keep the connection open for the remainder of this function
+
+ // insert, err := db.Query("INSERT INTO users VALUES('ELLIOT3')")
+ insert, err := db.Query("INSERT INTO users2 VALUES('a1', 'b1')")
+
+ if err != nil {
+ panic(err.Error)
+ }
+
+ defer insert.Close()
+ fmt.Println("Succes Insert")
+
+ results, err := db.Query("SELECT * FROM users2")
+ if err != nil {
+ panic(err.Error())
+ }
+
+ for results.Next() {
+ var user2 User2
+
+ err = results.Scan(&user2.Name, &user2.Name2)
+ if err != nil {
+ panic(err.Error())
+ }
+
+ fmt.Println(user2.Name, user2.Name2)
+ }
+
+ fmt.Println(*results)
+
+}
diff --git a/backend/go_orm/main.go b/backend/go_orm/main.go
new file mode 100644
index 0000000..153203e
--- /dev/null
+++ b/backend/go_orm/main.go
@@ -0,0 +1,33 @@
+package main
+
+import (
+ "fmt"
+ "log"
+ "net/http"
+
+ "github.com/gorilla/mux"
+)
+
+func helloWorld(w http.ResponseWriter, r *http.Request) {
+ fmt.Fprintf(w, "Hello World")
+
+}
+
+func hangleRequests() {
+ myRouter := mux.NewRouter().StrictSlash(true)
+ myRouter.HandleFunc("/", helloWorld).Methods("GET")
+ myRouter.HandleFunc("/users", AllUsers).Methods("GET")
+ myRouter.HandleFunc("/user/{name}/{email}", NewUser).Methods("POST")
+ myRouter.HandleFunc("/user/{name}", DeleteUser).Methods("DELETE")
+ myRouter.HandleFunc("/user/{name}/{email}", UpdateUser).Methods("PUT")
+
+ log.Fatal(http.ListenAndServe(":8081", myRouter))
+}
+
+func main() {
+ fmt.Println("GO ORM Tutorial")
+
+ InitialMigration()
+
+ hangleRequests()
+}
diff --git a/backend/go_orm/test.db b/backend/go_orm/test.db
new file mode 100644
index 0000000..b0ac015
Binary files /dev/null and b/backend/go_orm/test.db differ
diff --git a/backend/go_orm/user.go b/backend/go_orm/user.go
new file mode 100644
index 0000000..82171db
--- /dev/null
+++ b/backend/go_orm/user.go
@@ -0,0 +1,109 @@
+// Użycie ORM dla bazy sqlite3
+// w innych bazach na podobnej zasadzie
+// operowanie raczej na metodach db niż modeli
+package main
+
+import (
+ "encoding/json"
+ "fmt"
+ "net/http"
+
+ "github.com/gorilla/mux"
+
+ "github.com/jinzhu/gorm"
+ _ "github.com/jinzhu/gorm/dialects/sqlite"
+)
+
+var db *gorm.DB
+var err error
+
+type User struct { // ~= models.py
+ gorm.Model //modeled somehow in the database
+ Name string
+ Email string
+}
+
+func InitialMigration() {
+ db, err = gorm.Open("sqlite3", "test.db")
+ if err != nil {
+ fmt.Println(err.Error())
+ panic("Failed to connect to database")
+ }
+ defer db.Close()
+
+ db.AutoMigrate(&User{}) //migracja modelu
+}
+
+func AllUsers(w http.ResponseWriter, r *http.Request) {
+ //widok
+ db, err = gorm.Open("sqlite3", "test.db")
+ if err != nil {
+ panic("Could not connect to the database")
+ }
+ defer db.Close()
+
+ var users []User //lista obiektow
+ db.Find(&users)
+ json.NewEncoder(w).Encode(users) //parsowanie lisy na jsona
+
+}
+
+func NewUser(w http.ResponseWriter, r *http.Request) {
+ //widok
+ db, err = gorm.Open("sqlite3", "test.db")
+ if err != nil {
+ panic("Could not connect to database")
+ }
+ defer db.Close()
+
+ // pobieranie danych z url'a
+ vars := mux.Vars(r) //wyłuskanie danych z obiekt request
+ name := vars["name"]
+ email := vars["email"]
+
+ // tworzenie obiektu Name - atrybut struktury, name wartosc zmiennej z url'a
+ db.Create(&User{Name: name, Email: email})
+ fmt.Fprintf(w, "New user successfully created")
+}
+
+func DeleteUser(w http.ResponseWriter, r *http.Request) {
+ //widok
+ db, err = gorm.Open("sqlite3", "test.db")
+ if err != nil {
+ panic("Could not connect to the database")
+ }
+ defer db.Close()
+
+ vars := mux.Vars(r) //wyłuskanie danych z obiekt request
+ name := vars["name"] //wyłuskanie danych ze zmiennej z url'a
+ //[!] USUWA WSZYSTKO db.Delete(&User{Name: name}) //USUWA WSZYSTKO [!]
+
+ var user User
+ //znajdz obiekt user, gdzie atrybut name jest równy zmiennej name
+ db.Where("name = ?", name).Find(&user)
+ //znajduje tylko jeden obiekt jesli dane sa identyczne w baze i tylko jeden usuwa
+ db.Delete(&user)
+ fmt.Fprintf(w, "DELETE User")
+}
+
+func UpdateUser(w http.ResponseWriter, r *http.Request) {
+ //widok
+ db, err = gorm.Open("sqlite3", "test.db")
+ if err != nil {
+ panic("Could not connect to the database")
+ }
+ defer db.Close()
+
+ vars := mux.Vars(r)
+ name := vars["name"]
+ email := vars["email"]
+
+ var user User
+ db.Where("name =?", name).Find(&user)
+
+ user.Email = email
+
+ db.Save(&user)
+
+ fmt.Fprintf(w, "UPDATE User")
+}
diff --git a/backend/go_websockets/main.go b/backend/go_websockets/main.go
new file mode 100644
index 0000000..d5748a9
--- /dev/null
+++ b/backend/go_websockets/main.go
@@ -0,0 +1,48 @@
+//websocket zamiast rest api
+// problem tylko z wysiwietlaniem danych z przegladarki
+//Firefox:
+//Zablokowano żądanie do zasobu innego pochodzenia: zasady „Same Origin Policy”
+//nie pozwalają wczytywać zdalnych zasobów z „http://localhost:5000/socket.io/?EIO=3&transport=polling&t=MSKrtCr”
+// (brakujący nagłówek CORS „Access-Control-Allow-Origin”).[Więcej informacji]
+
+//Chrome: to samo co ^
+//
+//
+//
+
+package main
+
+import (
+ "fmt"
+ "log"
+ "net/http"
+
+ socketio "github.com/googollee/go-socket.io" //alias do biblioteki importu
+)
+
+func main() {
+ fmt.Println("Hello World")
+
+ server, err := socketio.NewServer(nil)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ server.On("connection", func(so socketio.Socket) {
+ log.Println("New Connection")
+ //handle chat message to and front
+ so.Join("chat")
+ so.On("chat message", func(msg string) {
+ log.Println("Message Received From Client: " + msg)
+ so.BroadcastTo("chat", "chat message", msg)
+ })
+
+ })
+
+ //file system handler
+ fs := http.FileServer(http.Dir("static")) //do folderu
+ http.Handle("/", fs)
+
+ http.Handle("/socket.io/", server) //native html socket
+ log.Fatal(http.ListenAndServe(":5000", nil))
+}
diff --git a/backend/go_websockets/static/index.html b/backend/go_websockets/static/index.html
new file mode 100644
index 0000000..184fcfe
--- /dev/null
+++ b/backend/go_websockets/static/index.html
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+ Go WebSocket Tutorial
+
+
+
+ Hello World
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/backend/testt_go/tut3.go b/backend/testt_go/tut3.go
new file mode 100644
index 0000000..4d71de9
--- /dev/null
+++ b/backend/testt_go/tut3.go
@@ -0,0 +1,44 @@
+//testowanie w GO
+//tutaj kod do przetestowania
+//uwaga jak w wielu plikach jest package main, to test sie wywali na twarz
+//pliki umieszcza wosobnych folderach jak tutaj
+// λ go test
+// # _/C_/Users/dp/Desktop/PracowaniaProgramowania/backend [_/C_/Users/dp/Desktop/PracowaniaProgramowania/backend.test]
+// .\duplication.go:10:6: main redeclared in this block
+// previous declaration at .\cw1.go:12:6
+// .\echo1.go:8:6: main redeclared in this block
+// previous declaration at .\duplication.go:10:6
+// .\echo2.go:9:6: main redeclared in this block
+// previous declaration at .\echo1.go:8:6
+// .\hello.go:5:6: main redeclared in this block
+// previous declaration at .\echo2.go:9:6
+// .\serverTest.go:12:6: main redeclared in this block
+// previous declaration at .\hello.go:5:6
+// .\serverTest2.go:15:6: main redeclared in this block
+// previous declaration at .\serverTest.go:12:6
+// .\tut1.go:37:6: main redeclared in this block
+// previous declaration at .\serverTest2.go:15:6
+// .\tut2.go:13:6: Article redeclared in this block
+// previous declaration at .\tut1.go:11:6
+// .\tut2.go:19:6: Articles redeclared in this block
+// previous declaration at .\tut1.go:17:6
+// .\tut2.go:21:6: allArticles redeclared in this block
+// previous declaration at .\tut1.go:19:44
+// .\tut2.go:21:6: too many errors
+// FAIL _/C_/Users/dp/Desktop/PracowaniaProgramowania/backend [build failed]
+package main
+
+import (
+ "fmt"
+)
+
+func Calculate(x int) (result int) {
+ result = x + 2
+ return result
+}
+
+func main() {
+ fmt.Println("Go testing tutorial")
+ result := Calculate(2)
+ fmt.Println(result)
+}
diff --git a/backend/testt_go/tut3_test.go b/backend/testt_go/tut3_test.go
new file mode 100644
index 0000000..9519c40
--- /dev/null
+++ b/backend/testt_go/tut3_test.go
@@ -0,0 +1,69 @@
+//testowanie w GO
+//tutaj testy
+//uwaga jak w wielu plikach jest package main, to test sie wywali na twarz
+//pliki umieszcza wosobnych folderach jak tutaj
+// λ go test
+// # _/C_/Users/dp/Desktop/PracowaniaProgramowania/backend [_/C_/Users/dp/Desktop/PracowaniaProgramowania/backend.test]
+// .\duplication.go:10:6: main redeclared in this block
+// previous declaration at .\cw1.go:12:6
+// .\echo1.go:8:6: main redeclared in this block
+// previous declaration at .\duplication.go:10:6
+// .\echo2.go:9:6: main redeclared in this block
+// previous declaration at .\echo1.go:8:6
+// .\hello.go:5:6: main redeclared in this block
+// previous declaration at .\echo2.go:9:6
+// .\serverTest.go:12:6: main redeclared in this block
+// previous declaration at .\hello.go:5:6
+// .\serverTest2.go:15:6: main redeclared in this block
+// previous declaration at .\serverTest.go:12:6
+// .\tut1.go:37:6: main redeclared in this block
+// previous declaration at .\serverTest2.go:15:6
+// .\tut2.go:13:6: Article redeclared in this block
+// previous declaration at .\tut1.go:11:6
+// .\tut2.go:19:6: Articles redeclared in this block
+// previous declaration at .\tut1.go:17:6
+// .\tut2.go:21:6: allArticles redeclared in this block
+// previous declaration at .\tut1.go:19:44
+// .\tut2.go:21:6: too many errors
+// FAIL _/C_/Users/dp/Desktop/PracowaniaProgramowania/backend [build failed]
+package main
+
+import "testing"
+
+func TestCalculate(t *testing.T) {
+ if Calculate(2) != 4 {
+ t.Error("Expected 2+2 to equal 4")
+ }
+ // if Calculate(2) != 4 {
+ // t.Error("Expected 2+2 to equal 4")
+ // }
+}
+
+// func TestCalculate2(t *testing.T) {
+// if Calculate(2) != 8 {
+// t.Error("Expected 2+2 to equal 8")
+// }
+// }
+
+func TestTableCalculate(t *testing.T) {
+ var tests = []struct {
+ input int
+ excpected int
+ }{
+ {2, 4},
+ {-1, 1},
+ {0, 2},
+ {9999, 10001},
+ }
+
+ //petelka foreach
+ for _, test := range tests {
+ if output := Calculate(test.input); output != test.excpected { //przypisanie a potem porownanie: 2 instrukcje w jednj linii - dlatego ;
+ t.Error("Tested Failed: {} inputted, {} expected , received {}", test.input, test.excpected, output) //jak .format() w py
+ }
+ }
+
+}
+
+//brak funkcji main o.Ó
+//funkcje wykonuja sie po kolei jak w pythonie
diff --git a/backend/tut2.go b/backend/tut2.go
new file mode 100644
index 0000000..0441549
--- /dev/null
+++ b/backend/tut2.go
@@ -0,0 +1,49 @@
+package main
+
+import (
+ "encoding/json"
+ "fmt"
+ "log"
+ "net/http"
+
+ "github.com/gorilla/mux"
+)
+
+//struktura artykuly
+type Article struct {
+ Title string `json:"Title"`
+ Desc string `json:"desc"`
+ Content string `json:"content"`
+}
+
+type Articles []Article
+
+func allArticles(w http.ResponseWriter, r *http.Request) {
+ articles := Articles{
+ Article{Title: "Test Title", Desc: "Test Description", Content: "Hello World"}, //json i szesceinne nawiasy!, przecinek na koniec
+ }
+ fmt.Println("Endpoint Hit: All Articles Endpoint")
+ json.NewEncoder(w).Encode(articles)
+}
+
+func homePage(w http.ResponseWriter, r *http.Request) {
+ fmt.Fprintf(w, "Homepage Enpoint Hit")
+}
+
+func testPostArticles(w http.ResponseWriter, r *http.Request) {
+ fmt.Fprintf(w, "Test POST endpoint worker")
+}
+
+func handleRequests() {
+
+ myRouter := mux.NewRouter().StrictSlash(true)
+ myRouter.HandleFunc("/", homePage)
+ myRouter.HandleFunc("/articles", allArticles).Methods("GET") //obsługa tylko GET
+ myRouter.HandleFunc("/articles", testPostArticles).Methods("POST") // -,- POST; wymagana nowa nazwa funkcji; ale ten sam url co wyzej ^
+
+ log.Fatal(http.ListenAndServe(":8081", myRouter))
+}
+
+func main() {
+ handleRequests()
+}
diff --git a/backend/tut2a.go b/backend/tut2a.go
new file mode 100644
index 0000000..ef93510
--- /dev/null
+++ b/backend/tut2a.go
@@ -0,0 +1,39 @@
+package main
+
+import (
+ "encoding/json"
+ "fmt"
+ "log"
+ "net/http"
+)
+
+//struktura artykuly
+type Article struct {
+ Title string `json:"Title"`
+ Desc string `json:"desc"`
+ Content string `json:"content"`
+}
+
+type Articles []Article
+
+func allArticles(w http.ResponseWriter, r *http.Request) {
+ articles := Articles{
+ Article{Title: "Test Title", Desc: "Test Description", Content: "Hello World"}, //json i szesceinne nawiasy!, przecinek na koniec
+ }
+ fmt.Println("Endpoint Hit: All Articles Endpoint")
+ json.NewEncoder(w).Encode(articles)
+}
+
+func homePage(w http.ResponseWriter, r *http.Request) {
+ fmt.Fprintf(w, "Homepage Enpoint Hit")
+}
+
+func handleRequests() {
+ http.HandleFunc("/", homePage)
+ http.HandleFunc("/articles", allArticles)
+ log.Fatal(http.ListenAndServe(":8081", nil))
+}
+
+func main() {
+ handleRequests()
+}
diff --git a/frontend/app/package-lock.json b/frontend/app/package-lock.json
index f56b7d6..af37874 100644
--- a/frontend/app/package-lock.json
+++ b/frontend/app/package-lock.json
@@ -344,8 +344,7 @@
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "dev": true
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
"ansi-styles": {
"version": "3.2.1",
@@ -1644,6 +1643,23 @@
"esutils": "^2.0.2"
}
},
+ "babel-polyfill": {
+ "version": "6.23.0",
+ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz",
+ "integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=",
+ "requires": {
+ "babel-runtime": "^6.22.0",
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.10.0"
+ },
+ "dependencies": {
+ "regenerator-runtime": {
+ "version": "0.10.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz",
+ "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg="
+ }
+ }
+ },
"babel-preset-env": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz",
@@ -1776,7 +1792,6 @@
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
- "dev": true,
"requires": {
"core-js": "^2.4.0",
"regenerator-runtime": "^0.11.0"
@@ -2016,6 +2031,24 @@
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=",
"dev": true
},
+ "bootstrap": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.1.3.tgz",
+ "integrity": "sha512-rDFIzgXcof0jDyjNosjv4Sno77X4KuPeFxG2XZZv1/Kc8DRVGVADdoQyyOVDwPqL36DDmtCQbrpMCqvpPLJQ0w=="
+ },
+ "bootstrap-vue": {
+ "version": "2.0.0-rc.11",
+ "resolved": "https://registry.npmjs.org/bootstrap-vue/-/bootstrap-vue-2.0.0-rc.11.tgz",
+ "integrity": "sha512-LxR+oL8yKr1DVoWUWTX+XhiT0xaTMH6142u2VSFDm4tewTH8HIrzN2YIl7HLZrw2DIuE9bRMIdWJqqn3aQe7Hw==",
+ "requires": {
+ "bootstrap": "^4.1.1",
+ "lodash.get": "^4.4.2",
+ "lodash.startcase": "^4.4.0",
+ "opencollective": "^1.0.3",
+ "popper.js": "^1.12.9",
+ "vue-functional-data-merge": "^2.0.5"
+ }
+ },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -2389,8 +2422,7 @@
"chardet": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz",
- "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
- "dev": true
+ "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I="
},
"check-types": {
"version": "7.4.0",
@@ -2631,7 +2663,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
"integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
- "dev": true,
"requires": {
"restore-cursor": "^2.0.0"
}
@@ -2645,8 +2676,7 @@
"cli-width": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
- "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
- "dev": true
+ "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
},
"cliui": {
"version": "4.1.0",
@@ -3017,8 +3047,7 @@
"core-js": {
"version": "2.5.7",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz",
- "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==",
- "dev": true
+ "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw=="
},
"core-util-is": {
"version": "1.0.2",
@@ -3968,6 +3997,14 @@
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
"dev": true
},
+ "encoding": {
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
+ "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
+ "requires": {
+ "iconv-lite": "~0.4.13"
+ }
+ },
"end-of-stream": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
@@ -4126,8 +4163,7 @@
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
"escodegen": {
"version": "1.11.0",
@@ -4744,7 +4780,6 @@
"version": "2.2.0",
"resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
"integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==",
- "dev": true,
"requires": {
"chardet": "^0.4.0",
"iconv-lite": "^0.4.17",
@@ -4845,7 +4880,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
"integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
- "dev": true,
"requires": {
"escape-string-regexp": "^1.0.5"
}
@@ -5944,7 +5978,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "dev": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@@ -6316,7 +6349,6 @@
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
}
@@ -6665,8 +6697,7 @@
"is-fullwidth-code-point": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "dev": true
+ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
},
"is-generator-fn": {
"version": "1.0.0",
@@ -6754,8 +6785,7 @@
"is-promise": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
- "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
- "dev": true
+ "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
},
"is-regex": {
"version": "1.0.4",
@@ -6775,8 +6805,7 @@
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
- "dev": true
+ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
},
"is-svg": {
"version": "2.1.0",
@@ -7720,8 +7749,7 @@
"lodash": {
"version": "4.17.11",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
- "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
- "dev": true
+ "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
},
"lodash._arraycopy": {
"version": "3.0.0",
@@ -7857,6 +7885,11 @@
}
}
},
+ "lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk="
+ },
"lodash.isarguments": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
@@ -7916,6 +7949,11 @@
"integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
"dev": true
},
+ "lodash.startcase": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz",
+ "integrity": "sha1-lDbjTtJgk+1/+uGTYUQ1CRXZrdg="
+ },
"lodash.uniq": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
@@ -8181,8 +8219,7 @@
"mimic-fn": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
- "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
- "dev": true
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ=="
},
"minimalistic-assert": {
"version": "1.0.1",
@@ -8384,8 +8421,7 @@
"mute-stream": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
- "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
- "dev": true
+ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
},
"nan": {
"version": "2.11.1",
@@ -8525,6 +8561,15 @@
}
}
},
+ "node-fetch": {
+ "version": "1.6.3",
+ "resolved": "http://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz",
+ "integrity": "sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ=",
+ "requires": {
+ "encoding": "^0.1.11",
+ "is-stream": "^1.0.1"
+ }
+ },
"node-forge": {
"version": "0.7.5",
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz",
@@ -8674,8 +8719,7 @@
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"object-copy": {
"version": "0.1.0",
@@ -8799,11 +8843,86 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
"integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
- "dev": true,
"requires": {
"mimic-fn": "^1.0.0"
}
},
+ "opencollective": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/opencollective/-/opencollective-1.0.3.tgz",
+ "integrity": "sha1-ruY3K8KBRFg2kMPKja7PwSDdDvE=",
+ "requires": {
+ "babel-polyfill": "6.23.0",
+ "chalk": "1.1.3",
+ "inquirer": "3.0.6",
+ "minimist": "1.2.0",
+ "node-fetch": "1.6.3",
+ "opn": "4.0.2"
+ },
+ "dependencies": {
+ "ansi-escapes": {
+ "version": "1.4.0",
+ "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4="
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ },
+ "chalk": {
+ "version": "1.1.3",
+ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+ "requires": {
+ "ansi-styles": "^2.2.1",
+ "escape-string-regexp": "^1.0.2",
+ "has-ansi": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^2.0.0"
+ }
+ },
+ "inquirer": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz",
+ "integrity": "sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c=",
+ "requires": {
+ "ansi-escapes": "^1.1.0",
+ "chalk": "^1.0.0",
+ "cli-cursor": "^2.1.0",
+ "cli-width": "^2.0.0",
+ "external-editor": "^2.0.1",
+ "figures": "^2.0.0",
+ "lodash": "^4.3.0",
+ "mute-stream": "0.0.7",
+ "run-async": "^2.2.0",
+ "rx": "^4.1.0",
+ "string-width": "^2.0.0",
+ "strip-ansi": "^3.0.0",
+ "through": "^2.3.6"
+ }
+ },
+ "minimist": {
+ "version": "1.2.0",
+ "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ },
+ "opn": {
+ "version": "4.0.2",
+ "resolved": "http://registry.npmjs.org/opn/-/opn-4.0.2.tgz",
+ "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=",
+ "requires": {
+ "object-assign": "^4.0.1",
+ "pinkie-promise": "^2.0.0"
+ }
+ },
+ "supports-color": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+ }
+ }
+ },
"opener": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz",
@@ -8908,8 +9027,7 @@
"os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
- "dev": true
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
},
"osenv": {
"version": "0.1.5",
@@ -9166,14 +9284,12 @@
"pinkie": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
- "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
- "dev": true
+ "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
},
"pinkie-promise": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
- "dev": true,
"requires": {
"pinkie": "^2.0.0"
}
@@ -9199,6 +9315,11 @@
"integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==",
"dev": true
},
+ "popper.js": {
+ "version": "1.14.5",
+ "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.5.tgz",
+ "integrity": "sha512-fs4Sd8bZLgEzrk8aS7Em1qh+wcawtE87kRUJQhK6+LndyV1HerX7+LURzAylVaTyWIn5NTB/lyjnWqw/AZ6Yrw=="
+ },
"portfinder": {
"version": "1.0.19",
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.19.tgz",
@@ -12026,8 +12147,7 @@
"regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
- "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==",
- "dev": true
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
},
"regenerator-transform": {
"version": "0.10.1",
@@ -12269,7 +12389,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
"integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
- "dev": true,
"requires": {
"onetime": "^2.0.0",
"signal-exit": "^3.0.2"
@@ -12319,7 +12438,6 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
"integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
- "dev": true,
"requires": {
"is-promise": "^2.1.0"
}
@@ -12333,6 +12451,11 @@
"aproba": "^1.1.1"
}
},
+ "rx": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz",
+ "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I="
+ },
"rx-lite": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz",
@@ -12366,8 +12489,7 @@
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"sane": {
"version": "2.5.2",
@@ -12870,8 +12992,7 @@
"signal-exit": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
- "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
- "dev": true
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
},
"slash": {
"version": "1.0.0",
@@ -13352,7 +13473,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
"integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "dev": true,
"requires": {
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^4.0.0"
@@ -13361,14 +13481,12 @@
"ansi-regex": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "dev": true
+ "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
},
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dev": true,
"requires": {
"ansi-regex": "^3.0.0"
}
@@ -13388,7 +13506,6 @@
"version": "3.0.1",
"resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "dev": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@@ -13534,8 +13651,7 @@
"through": {
"version": "2.3.8",
"resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz",
- "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
- "dev": true
+ "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
},
"through2": {
"version": "2.0.5",
@@ -13578,7 +13694,6 @@
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
- "dev": true,
"requires": {
"os-tmpdir": "~1.0.2"
}
@@ -14182,6 +14297,11 @@
}
}
},
+ "vue-functional-data-merge": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/vue-functional-data-merge/-/vue-functional-data-merge-2.0.7.tgz",
+ "integrity": "sha512-pvLc+H+x2prwBj/uSEIITyxjz/7ZUVVK8uYbrYMmhDvMXnzh9OvQvVEwcOSBQjsubd4Eq41/CSJaWzy4hemMNQ=="
+ },
"vue-hot-reload-api": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.1.tgz",
diff --git a/frontend/app/package.json b/frontend/app/package.json
index a676f02..7ce6e48 100644
--- a/frontend/app/package.json
+++ b/frontend/app/package.json
@@ -14,6 +14,7 @@
"build": "node build/build.js"
},
"dependencies": {
+ "bootstrap-vue": "^2.0.0-rc.11",
"vue": "^2.5.2",
"vue-router": "^3.0.1",
"vuex": "^3.0.1"
diff --git a/frontend/app/src/components/BootstrapMenu.vue b/frontend/app/src/components/BootstrapMenu.vue
new file mode 100644
index 0000000..445b16f
--- /dev/null
+++ b/frontend/app/src/components/BootstrapMenu.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/frontend/app/src/components/HelloWorld.vue b/frontend/app/src/components/HelloWorld.vue
index 430c099..f39c62a 100644
--- a/frontend/app/src/components/HelloWorld.vue
+++ b/frontend/app/src/components/HelloWorld.vue
@@ -1,7 +1,8 @@
-
+
+
diff --git a/frontend/app/src/main.js b/frontend/app/src/main.js
index c099f2c..6312448 100644
--- a/frontend/app/src/main.js
+++ b/frontend/app/src/main.js
@@ -6,10 +6,18 @@ import router from './router'
import { store } from './store/store' //importowanie central store;
import SidenavMenu from '@/components/SidenavMenu'
import TransitionElement from '@/components/TransitionElement'
-
+import BootstrapVue from 'bootstrap-vue'
+import BMenu from '@/components/BootstrapMenu'
Vue.component('sidenav-menu', SidenavMenu) // globalnby import menu
Vue.component('transition-element', TransitionElement) // globalnby import menu
+Vue.component('b-menu', BMenu) // globalnby import menu
+
+
+
+Vue.use(BootstrapVue);
+import 'bootstrap/dist/css/bootstrap.css'
+import 'bootstrap-vue/dist/bootstrap-vue.css'
Vue.config.productionTip = false