Skip to content

StjepanH96/.NetCore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 

Repository files navigation

Solar Power Plant Monitoring API

Ova aplikacija omogućuje kreiranje i upravljanje solarnim elektranama, kao i dohvaćanje produktivnih podataka temeljenih na vremenskim uvjetima. Aplikacija također sadrži funkcionalnost za registraciju i prijavu korisnika, gdje se nakon uspješne prijave generira JWT token za autorizaciju.

Glavne funkcionalnosti:

  • Registracija i prijava korisnika
  • CRUD operacije (Create, Read, Update, Delete) za solarne elektrane
  • Dohvaćanje proizvodnih podataka na temelju vremenskih uvjeta (s OpenWeather API-jem)
  • Autorizacija pomoću JWT tokena za pristup zaštićenim API endpointima
  • ** logovi

Primjer responsa i loga za test

Slika zaslona 2024-12-02 u 18 27 05 Slika zaslona 2024-12-04 u 12 30 28

Napomena:

  • Prilikom dodavanja solarne elektrane, aplikacija automatski izračunava prognozu proizvodnje temeljem vremenskih uvjeta dohvaćenih s OpenWeather API.
  • Svakih petnaest minuta će se dodati zapis, granularnost je konfigurirana da nakon četiri zapisa, doda se 1 hour zapis koji će izračunati ukupnu produktivnost elektrane u tom periodu od 4 zapisa.
  • Ako korisnik ima više od jedne elektrane, za svaku elektranu će se zapisivati zasebno. Slika iznad
  • Pristupanje endpointima, kao što je navedeno zaštićeno je jwt tokenom. Postavite ga u header.

Instalacija i Pokretanje Aplikacije

  1. Klonirajte projekt na svoje računalo.
  2. Otvorite projekt u Visual Studio.
  3. Koristite dotnet restore kako bi dohvatili sve pakete koje projekt sadrži.
  4. Koristio sam Sqlite( na macu) potrebno je izvršiti migracije za bazu. dotnet ef migrations add InitialCreate
  5. Zatim pokrenite projekt s dotnet run.

API Endpoints

1. Registracija korisnika

  • POST: POST api/Auth/register

  • Opis: Registrira novog korisnika.

  • 2. Prijava korisnika

  • POST: POST api/Auth/login

  • Opis: Prijava novog korisnika.

  • dobivanje tokena

Primjer zahtjeva za login i register:

POST /api/Auth/register
Content-Type: application/json
{
  "username": "newuser",
  "password": "password123"
}

Postman
#### 2. **Dodavanje solarne elektrane**
- **PUT**: `POST api/SolarPowerPlant/addSolarPowerPlant`
- **Opis**: Registrira novu solarnu elektranu. Prilikom dodavanja, izračunava se produktivnost na temelju vremenskih uvjeta.
- **Primjer zahtjeva**:
  ```json
  POST /api/SolarPowerPlant/addSolarPowerPlant
  Content-Type: application/json
  Authorization: Bearer <your_jwt_token>
  {
    "name": "Solar Plant 1",
    "installedPower": 100,
    "dateOfInstallation": "2023-01-01",
    "latitude": 45.12345,
    "longitude": 15.12345
  }
  ```

#### 2. **Ažuriranje solarne elektrane**
- **PUT**: `PUT api/SolarPowerPlant/updateSolarPowerPlant/{id}`
- **Opis**: Ažurira podatke o solarnoj elektrani s danim ID-jem.

#### 3. **Brisanje solarne elektrane**
- **DELETE**: `DELETE api/SolarPowerPlant/deleteSolarPowerPlant/{id}`
- **Opis**: Briše solarnu elektranu s danim ID-jem.

#### 4. **Dobavljanje solarnih elektrana**
- **GET**: `GET api/SolarPowerPlant/getSolarPowerPlants`
- **Opis**: Dohvaća sve solarne elektrane povezane s korisnikom.

### Putanje za ProductionController

http://localhost:5032/api/Production/{id}
U body response biti će vam ispisani svi produkcijski zapisi elektrane s obzirom na  vrijeme.

Ukratko, u projektu se koristi weather background service koji prilikom podizanja projekta šalje zahtjev svakih petnaest miuta na weather service koji opet poziva api. Production service računa produktivnost utemljenu na vremenskim podatcima.Također tu su modalsi, controlleri i ostale stvari koje su složene u projektu.

About

.NetCore application for Solar Power Plants

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages