WebTech Superheroes Hub is a place where people passionate about web technologies learn and share experience
Arhitectura aplicației este de tip Single-Page Applicațion. Partea de frontend conține o interfață dezvoltată folosind ReactJS, iar backend-ul permite accesul la date prin intermediul unui API RESTful dezvoltat cu NodeJS și ExpressJS. Datele sunt stocate într-o baza de date relațională (MySQL).
Vei avea nevoie de o versiune de NodeJS > 8
- Pentru a descărca codul sursă:
git clone https://github.com/webtech-superheroes/webtech-hub- Navigează in directorul backend
cd backend- Înstalează modulele npm
npm install-
Configurează un server MySQL și crează o bază de date
-
În directorul
./backend/config/crează un fișierdb.jsoncu structura indicată în fișieruldb.sample.json -
Adaugă setările pentru baza de date în fișierul
db.json -
Execută scriptul
createdb.jspentru a realiza structura bazei de date
node createdb.js- Obține credențiale de autentificare cu Google OAuth2 și configurează cheile secrete în fișierul
secrets.jsondin directorul./backend/config/cu structura indicată în fișierulsecrets.sample.json. - Urmăriți instrucțiunile de aici pentru a obține cheile de la Google
- Navighează în directorul frontend
cd frontend
- Înstalează modulele npm
npm install- Adăugați setările pentru mediu în fișierul .env
REACT_APP_API_BASEURL="http://ip:3001"
REACT_APP_BASEURL="http://ip:3000"
- pentru adresa locala folositi localhost sau 127.0.0.1
- Navighează in directorul backend și pornește aplicația backend
node server.js- Navighează în directorul frontend și pornește aplicația de React
npm startAplicația react va rula pe portul 3000, iar serverul pe portul 3001
Aplicația a fost creată folosind următoarele pachete npm:
- Create React App pentru partea de frontend - https://create-react-app.dev/
- MaterialUI pentru componente de interfață - https://material-ui.com/
- Axios pentru cereri HTTP - https://github.com/axios/axios
- PassportJS pentru autentificare cu servicii externe - http://www.passportjs.org/
- Sequelize pentru interacținea cu baza de date - https://sequelize.org/