Code Monkey home page Code Monkey logo

faisgroupproject2019's Introduction

FAISGroupProject2019

W celu skorzystania z bazy danych należy zainstalować mysql serwer, a następnie wczytać bazę z pliku.

Nawiązanie połączenia z bazą danych: w pliku app.js jest tworzenie połączenia z bazą danych.
Wymagany jest pakiet mysql dla npm, można zainstalować komendą npm install mysql
Nazwę użytkownika, hasło i nazwę bazy danych zmienić tak, aby paswowała do waszej stworzonej bazy mysql.

W celu korzystania z sesji - instalacja modułu express-session

UPDATE

Panel admina - znajduje się pod ukrytą ścieżką /admin

Dodawanie stron:

Dodając nową stronę trzeba zedytować pliki views/eader.ejs oraz routs/index.js. W routs/index.js dodajemy połączenie linku z adresem:

router.get('[ADRES]', function(req, res, next) {  
	res.render('[PLIK]', { page: '[STRONA]', title: '[TYTUŁ/PODSTRONA]' });  
});  

W pliku views/header.ejs dodajemy wpisy do menu. Tam mamy zagnieżdżone if-y. Pierwszy poziom to wybór menu w zależności od zmiennej page oznaczającej zestaw stron (np. niezalogowany użytkownik = main) oraz wpis menu:

<a class=  
<% if(title=="[TYTUŁ/PODSTRONA]"){ %>  
  menu_s  
<% } else{ %>  
  menu  
<% } %> href="[ADRES]" tabindex="[NUMER LINKU]">[NAPIS PRZYCISKU]</a>  

Numer linku służy do ustalenia kolejności przechodzenia pomiędzy elementami przy użyciu tabulacji. Na stronie tabindex wszystkich elementów ustawiamy na 100, wtedy przechodzenie będzie w kolejności: pasek menu => strona w kolejności wpisów html => stopka

Konfiguracja:

Wymagania:

  • node.js
  • mysql (zalecana wersja 5.X)

1. Instalujemy node.js i mysql

$ apt-get install nodejs
$ apt-get install mysql

####Uwaga: node.js nie wspiera nowego uwierzytelenienia wprowadzonego w mysql 8.X, więc jeżeli instalujesz wersję 8.X upewnij się, że hasło konta użytkownika używa starej wersji uwierzytelnienia: mysql_native_password. Więcej informacji i zmiana mechanizmu uwierzytelenienia:
https://stackoverflow.com/questions/50373427/node-js-cant-authenticate-to-mysql-8-0

SET GLOBAL validate_password_policy=LOW;  
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';  

2. Klonujemy repo

3. Logujemy się na mysql i tworzymy bazę

Domyślnie konto root'a jest bez hasła - chyba, że zostało ustawione przy instalacji. Komenda logowania (użytkownicy linuxa powinni wykonać ją za pomocą sudo):

Bez hasła:
$ mysql -u root  
Z hasłem:
$ mysql -u root -p  
mysql> create database Zespolowe;

Po zalogowaniu się tworzymy bazę. Nazwa nie ma znaczenia, Mateusz nazwał ją Zespolowe. Można ustawić inną, ale należy pamiętać, że trzeba ją później wszędzie ustawić, gdzie z niej korzystamy (domyślnie push'nieta jest nazwa 'Zespolowe'). Komenda:
create database nazwa_bazy

4. Ładujemy plik .sql do bazy danych mysql

$ mysql -u username -p database_name < file.sql

$ mysql -u root -p Zespolowe < Zespolowe.sql

5. Konfiguracja projektu

Jeżeli node został zainstalowany, pakiet npm powinien działać z poziomu konsoli. Przechodzimy do katalogu projektu (tam gdzie app.js) i jeżeli nie mamy folderu node_modules (nie korzystacie z archiwum Piotra), to należy wpisac:

$ npm install  

$ npm install express  

$ npm install mysql  

$ npm install express-session

Archiwum Piotra nie zawierało mysql, należy więc wpisać ostatnią linijkę mysql.
Połączenie z bazą z poziomu projektu tworzone jest w pliku app.js, w linijkach (teraz 27-31):

dbconn = mysql.createConnection({  
	user: 'root',  
	password: 'password',  
	database: 'Zespolowe'  
});

Jak coś inaczej skonfigurowaliście, to należy to zmienić.

6 Uruchomienie serwera

$ npm install
$ npm start  

Problemy przy odpalaniu:

  • Authentication error (handshake): Patrz punkt 2
  • Authentication failed (permission denied): Niepoprawny login/hasło (logowania do mysql/ustawione w app.js - punkt 6)

Jak działa logowanie

  1. Zainstaluj wymagane pakiety: npm install
  2. Zmodyfikuj w połączeniu z bazą hasło (jakie masz u siebie do mysqla)
  3. Sprawdzenie czy ktoś jest zalogowany odbywa się po stronie serwera poprzez funkcję req.isAuthenticated()
  4. Aby wywietlić w konsoli informacje o zalogowanym użytkowniku/barze wystarczy wpisać mozna uzyc url localhost:3000/test
  5. zmienna page: zalogowany uzytkownik ma zmienna page jako 'authenticated', niezalogowany 'main' -> ustawione w funkcji getPageVariable(req) w index.js

faisgroupproject2019's People

Contributors

kamil-sladowski avatar mateuszdobija avatar piotrintes avatar rmlebioda avatar dianajanik avatar gurujasko11 avatar michalbator avatar batormichal avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.