Aplikacja internetowa do głosowania na utwory, w wybranych przedziałach czasowych
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.
- 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
- Stwórz plik konfiguracyjny
.env
w./config
na podstawie pliku.env.example
. Każda zmienna musi mieć wartość (zmienna nie może być pusta) - Otwórz terminal w głównym folderze projektu
- Zainstaluj potrzebne zależności komendą
yarn install && yarn bootstrap
- Przejdź do
provision/vagrant/
- Uruchom aplikację poprzez
vagrant up
. Aplikacja będzie uruchomiona w trybie, który zależy od wartości zmiennejIS_PRODUCTION
wconfig/.env
. JeśliIS_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
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
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
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
Ponowne uruchamianie kontenerów dockera (przydatne jeśli zmieniliśmy coś w procesie budowania kontenerów, itp.)
./restart-docker.sh
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.
Zobacz CONTRIBUTING
Zobacz naszą tablicę Trello z zadaniami do zrobienia
- 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.
SemVer jest używany do wersjonowania. Wyszukaj tagi tego repozytorium, aby zobaczyć dostępne wersje.
- Kacper Ochmański - Rozpoczęcie i rozwój projektu - ochmanski
Zobacz dalszą listę współtwórców zaangażowanych w ten projekt.
Ten projekt jest licencjonowany na podstawie licencji MIT - szczegóły licencji znajdują się w pliku LICENSE