Projekt w trakcie rozwijania związany z giełdami kryptowalut
- Ogólne informacje
- Technologie
- Baza danych
- Połączenie z lokalnym serwerem
- Połączenie z zdalnym serwerem
- Tworzenie tabeli
- Web Controller
- Twilio SMS
- Dodatkowe pluginy
- Screenshots
Projekt obejmuje pobieranie informacji dotyczących kryptowalut z giełd: Bitbay, Bitfinex, Bittrex, Poloniex, Wex i przetwarzanie tych informacji, podawanie różnych statystyk. Informacje zapisywane są w bazie danych po wywołaniu odpowiednich metod RestControllera o którym jest mowa poniżej
- Java
- Spring Boot
- Spring Data (Spring JPA)
- Meaven
- XML
- SQL
- JSON
- PostgreSQL 10.5
- pgAdmin4 (uruchamia się w przeglądarce, przydatne narzędzie: psql.exe)
Podczas instalacji PostgreSQL-a należy podać hasło do lokalnego serwera oraz port. Dodatkowe oprogramowanie można pobrać przy pomocy Application Stack Builder. Należy także dodać zmienne środowiskowe:
Konfiguracja PostgreSQL-a: pliki: pg_hba.conf postgresql.conf
Folder data znajdujący się w folderze PostgreSQL
Plik application.properties
Przykładowy kod:
spring.datasource.url=jdbc:postgresql://localhost/postgres
spring.datasource.username=postgres
spring.datasource.password=spotlike18
spring.jpa.generate-ddl=true
server.port=8000
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
postgres://nfokbrfc:53AXqgx-bdBVRLBYvzRfxRRS0_ij4qxF@horton.elephantsql.com:5432/nfokbrfc
Przykładowy kod dla giełdy Bitbay:
-- Table: public.bitbay
-- DROP TABLE public.bitbay;
CREATE TABLE public.bitbay
(
id bigint NOT NULL,
kurs double precision,
data timestamp without time zone,
procent double precision,
CONSTRAINT test_pk PRIMARY KEY (id)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
ALTER TABLE public.bitbay
OWNER to postgres;
Kolumna procent dotyczy obliczania różnicy procentowej w wartości kursu w dowolnym przedziale czasu
Przy pomocy RestControllera w Spring Boot można uzyskiwać różne informacje bazy danych za pomocą odpwiedniego adresu, na lokalnym serwerze wygląda to tak:
metoda save zapisuje pojedynczy rekord do wybranej tabeli lub do wszystkich na raz
- Aby zapisać pojedynczy rekord do tabeli bitbay podajemy w przeglądarce następujący adres:
http://localhost:8000/save?nameOfExchange=bitbay
Domyślnie wywołanie metody save bez podania parametru zapisuje rekord do każdej z tabeli
związanej z konkretnę giełdą lub podanie parametru all spowoduje taki sam efekt
- Aby wyświetlić wszystkie informacje z tabel: kurs, data, procent należy wywołać metodę findall lub findnameOfExchange dla danej giełdy:
http://localhost:8000/findall
http://localhost:8000/findallbitbay
http://localhost:8000/findallbitfinex
http://localhost:8000/findallbittrex
http://localhost:8000/findallpoloniex
http://localhost:8000/findallwex
- Aby otrzymać informację o maksymalnej lub minimalnej wartości kursu (pary ETHBTC) z danych przechowywanych w tabeli oraz datę i czas, kiedy te wartości występowały należy wywołać metody max lub min:
http://localhost:8000/min
http://localhost:8000/max
- Usunięcie wszystkich rekordów z tabel następuję poprzez wywołanie metody deleteAllRecords:
http://localhost:8000/deleteAllRecords
- W kontrolerze nie wspomniano jeszcze o jednej metodzie: saveStillAll . Metoda ta dodaje dane ze wszystkich giełd co 10 sekund (czas ten można zmienić). Dane zapisywane są do bazy danych, a gdy w zadanym przedziale czasu nastąpi określona różnica w tym przypadku dla pary ETHBTC (może być inne) wysyłane zostaje powiadomienie na SMS-a, dla numeru, który podaje się tworząć konto Twilio. Twilio nie jest darmowym REST API jeśli jest wykorzystywane do celów komercyjnych.
Wywołanie metody: http://localhost:8000/saveStillAll
- Tworzenie konta w Twilio
https://www.twilio.com/
Utworzenie konta jest darmowe. Utworzono Programmable SMS Dashboard. Otrzymano jeden
numer Twilio. Weryfkacja następuje poprzez wpisywania kodu AUTHMSG. Aby móc otrzymywać
powiadomienia na swój telefon niezbędne jest podanie numeru w kodzie oraz wartości parametrów:
ACCOUNT_SID, AUTH_TOKEN które zostają generowane po utworzeniu konta.
- Przykładowa wiadomość SMS:
Plik pom.xml dostarcza informacji o wykorzystanych bibliotekach.
W celu dodania biblioteki Lombok oprócz dodania <dependency>
w pom.xml należy pobrać plugin do Intelij
i go zainstalować oraz zrestartować Intelij
(instalacja plugina odbywa się poprzez wejście w:
File -> Settings -> Plugins ->...
Wersja plugina w projekcie: lombok-plugin-0.19-2018.1
https://plugins.jetbrains.com/plugin/6317-lombok-plugin
Podobnie z biblioteką związaną z klasą Serializable GenerateSerialVersionUID_plugin_V3.0.3










