Skip to content
This repository has been archived by the owner on Aug 19, 2019. It is now read-only.

📻 Aplikacja internetowa do głosowania na utwory, w wybranych przedziałach czasowych

License

Notifications You must be signed in to change notification settings

ochmanski/radiowezel-elektryk

Repository files navigation

Radiowęzeł Elektryk

Aplikacja internetowa do głosowania na utwory, w wybranych przedziałach czasowych

Wprowadzenie

Instrukcje poniżej pozwalają na uruchomienie projektu na dowolnej maszynie lokalnej, w celu rozwoju i testowania. Zobacz wskazówki dotyczące wdrażania (deployment) projektu na działającym systemie.

Wymagania wstępne

  • Vagrant
  • VirtualBox - tylko jeśli domyślny provider jest inny niż "virtualbox", tzn. jeśli wszystko działa bez VirtualBoxa, nie musimy go dodatkowo instalować.
  • Node.js - potrzebny do instalacji Yarna
  • Yarn - potrzebny do instalacji zależności

Uruchamianie aplikacji

  1. Stwórz plik konfiguracyjny .env w ./config na podstawie pliku .env.example. Każda zmienna musi mieć wartość (zmienna nie może być pusta)
  2. Otwórz terminal w głównym folderze projektu
  3. Zainstaluj potrzebne zależności komendą yarn install && yarn bootstrap
  4. Przejdź do provision/vagrant/
  5. Uruchom aplikację poprzez vagrant up. Aplikacja będzie uruchomiona w trybie, który zależy od wartości zmiennej IS_PRODUCTION w config/.env. Jeśli IS_PRODUCTION jest ustawiony na false, aplikacja uruchomi się w trybie deweloperskim. Tryb deweloperski umożliwia szybki rozwój i debugowanie aplikacji. Pliki aktualizowane (budowane, lintowane, testowane) są z każdym zapisem któregokolwiek pliku. Tryb produkcyjny, IS_PRODUCTION=true, działa szybciej, pozwala przyjąć więcej jednoczesnych połączeń, jednak wszelkie udogodnienia związane z rozwojem aplikacji są wyłączone

Uruchamianie aplikacji - tl;dr

Instalacja zależności i konfiguracja projektu pod swoją maszynę

yarn install &&
yarn bootstrap &&
cp config/.env.example config/.env &&
vim config/.env

Uruchomienie aplikacji

cd provision/vagrant/ &&
vagrant up

Jeśli wykonaliśmy powyższe kroki aplikacja działa już na localhost i wybranych portach


Przydatne komendy

Ponowne uruchamianie całej aplikacji (na przykład po wprowadzonych zmianach w Vagrantfile)

vagrant reload

Zatrzymanie wirtualnej maszyny (Vagrant)

vagrant halt

Logowanie do wirtualnej maszyny (Vagrant)

vagrant ssh

Po zalogowaniu się do wirtualnej maszyny Vagranta

Każda komenda docker-compose musi być wykonywana z folderu provision/docker, po zalogowaniu w wirtualnej maszynie Vagranta (po zalogowaniu się jesteśmy automatycznie przenoszeni do folderu provision/docker).

Logowanie do poszczególnych wirtualnych maszyn w Dockerze

docker-compose exec $NAZWA_PACZKI /bin/ash

Wyświetlanie logów poszczególnych paczek

docker-compose logs $NAZWA_PACZKI

Dodatkowe komendy

Ponowne uruchamianie kontenerów dockera (przydatne jeśli zmieniliśmy coś w procesie budowania kontenerów, itp.)

./restart-docker.sh

Wdrażanie (deployment)

Wystarczy zmienić wartość zmiennej IS_PRODUCTION w ./config/.env na true. Wtedy aplikacja przechodzi w tryb produkcyjny, a my możemy wystawić ją do Internetu.

Wnoszenie swojego wkładu do projektu

Zobacz CONTRIBUTING

TODO

Zobacz naszą tablicę Trello z zadaniami do zrobienia

Zbudowane przy pomocy

  • TypeScript - Statyczne typowanie, używane w całym projekcie
  • TSLint - Linter do TypeScriptu, używany w całym projekcie
  • Node.js - Serwer
  • Express - Web framework dla serwera
  • GraphQL - Ustandaryzowanie API
  • Apollo Server - Implementacja serwera GraphQL, zgodnego ze specyfikacją
  • MongoDB - Baza danych
  • Mongoose - Przystępny dostęp do MongoDB, na podstawie schematów
  • Redis - Baza danych dla cache'owania zapytań do głównej bazy danych
  • Socket.IO - Wiadomości w czasie rzeczywistym między serwerem a aplikacją
  • Workbox - Cache'owanie zasobów i funkcjonalności do budowania PWA
  • React - Aplikacja
  • Scss - Style aplikacji
  • Webpack - Budowanie, serwowanie aplikacji
  • Vagrant - Odtwarzalne środowisko deweloperskie, ustandaryzowany rozwój projektu
  • Docker - Wydzielenie paczek projektu na osobne kontenery

...i inne. Zobacz package.json w poszczególnych paczkach projektu, dla wszystkich bibliotek używanych w projekcie.

Wersje

SemVer jest używany do wersjonowania. Wyszukaj tagi tego repozytorium, aby zobaczyć dostępne wersje.

Autorzy

  • Kacper Ochmański - Rozpoczęcie i rozwój projektu - ochmanski

Zobacz dalszą listę współtwórców zaangażowanych w ten projekt.

Licencja

Ten projekt jest licencjonowany na podstawie licencji MIT - szczegóły licencji znajdują się w pliku LICENSE

About

📻 Aplikacja internetowa do głosowania na utwory, w wybranych przedziałach czasowych

Topics