Skip to content

It is ebook shop web app. Users can add own ebooks and other users can buy these ebooks - authors and website owners can earn money. Other functions are plagiarism detection, premium accounts and highlighting ebooks.

Notifications You must be signed in to change notification settings

kamil20020/Ksiegarnia-ebookow_Zastosowania-IT-w-gospodarce_06-2023

 
 

Repository files navigation

Księgarnia ebooków (Ebookworld) (06.2023)

Aplikacja została zrealizowana w ramach zajęć projektowych z Zastosowań informatyki w gospodarce na Politechnice Wrocławskiej. Aplikacja Ebookworld ma umożliwić nowym, świeżym autorom osiągnąć sukces na rynku, uzyskać pierwszych czytelników czy recenzje dla swoich książek. Dzięki tej platformie każda pełnoletnia osoba może stać się pisarzem i podzielić się swoją twórczością z innymi. Niezależnie od tego, czy jest ona doświadczonym autorem, pasjonatem literatury czy początkującym pisarzem, może opublikować swoje dzieło na naszej stronie i udostępnić je czytelnikom.

Struktura projektu:

  • Lokalizacja ./Ksiegarnia/Ksiegarnia/ClientApp - kod frontendu,
  • Reszta miejsc - kod backendu.

Cel projektu

Celem jest projekt, implementacja, testowanie i wdrożenie internetowej księgarni Ebookworld z możliwością sprzedaży własnoręcznie napisanych utworów w formie e-booków w formacie pdf.

Zakres pracy:

  • Projekt:
    • Zdefiniowanie wymagań funkcjonalnych i niefunkcjonalnych,
    • Projekt endpointów,
    • Wykonanie makiet (ang. mockups) widoków interfejsu użytkownika,
    • Zrobienie schematów bazy danych.
  • Implementacja:
    • Aplikacja kliencka,
    • Aplikacja serwerowa,
    • Uwierzytelanie i autoryzacja.
  • Testowanie:
    • Testy integracyjne kontrolerów oraz serwisów,
  • Wdrożenie całego systemu,
  • Opracowanie dokumentacji:
    • Prezentacja końcowa,
    • Instrukcje użytkowania,
    • Dokumentacja końcowa.

Zespół:

Uczestnik projektu Obowiązki
Kamil Dywan frontend
Damian Janusiak backend
Bartłomiej Gtfryd projekt, dokumentacja

Role użytkowników:

  • Czytelnik / Autor,
  • Administrator.

Wymagania funkcjonalne:

  • Logowanie i rejestacja,
  • Edycja konta,
  • Tworzenie własnych ebooków,
  • Edycja i usuwanie własnych ebooków,
  • Wyszukiwanie, filtrowanie i sortowanie ebooków,
  • Szczegółowy podgląd ebooka,
  • Koszyk,
  • Przeprowadzenie transakcji,
  • Statystyki autora np. zarobione pieniądze,
  • Mechanizm wirtualnego portfela,
  • Możliwość wyświetlenia zakupionego ebooka,
  • Wyświetlenie historii zakupów,
  • Ocenianie ebooków innych użytkowników,
  • Wyróżnianie ebooków - lepsze pozycjonowanie i wyraźne graficzne wyróżnienie ebooka,
  • Zgłoszenie podejrzenia o plagiat,
  • Zarządzanie portalem przez administratora:
    • Możliwość nadawania / odbierania uprawnień administratora lub premium,
    • Podgląd ebooków,
    • Edycja i usuwanie ebooków.

Model biznesowy:

  • Prowizja od zakupu książek (10%),
  • Płatne konto premium (specjalne promocje oraz darmowe wyróżnienia),
  • Wyróżnienia ebooków,
  • Reklamy na stronie.

Wymagania niefunkcjonalne:

  • Strona jest dostępna w systemie 24/7/365,
  • Użytkownik może zmienić rozmiar czcionki i włączyć tryb nocny,
  • Użytkownik może wrzucić do 10 własnych e-booków (nie tyczy się użytkowników premium),
  • Jest przeprowadzana automatyczna weryfikacja treści e-booków w oparciu o własny prosty oraz zewnętrzny system antyplagiatowy,
  • Użytkownik akceptuje regulamin, ponosząc odpowiedzialność za plagiat i oszustwa,
  • Technologie:
    • Aplikacja serwerowa:
      • Paradygmat - DDD,
      • Język programowania - C#,
      • Tworzenie aplikacji webowych - ASP .NET Core,
      • Dostęp do danych - Entity Framework Core,
      • Uwierzytelnianie i autoryzacja - ASP. NET Core Identity,
      • PayPal SDK - przeprowadzanie transakcji,
      • Wysyłanie maili - MailKit,
      • Zewnętrzny system antyplagiatowy - CopyLeaks,
      • Testowanie - XUnit,
      • Mockowanie na potrzeby testowania - Moq,
      • IDE - Visual Studio.
    • Baza danych: T-SQL
    • Aplikacja kliencka:
      • Główny język - TypeScript (rozszerzenie JavaScript),
      • Budowa strony - React,
      • Biblioteka gotowych komponentów - MUI,
      • Zarządzanie odizolowanymi stanami aplikacji - Context API,
      • IDE - Visual Studio Code.
    • Wdrożenie:
      • Aplikacja kliencka i serwerowa - Azure App Service,
      • Baza danych: Azure SQL Database.
    • Inne:
      • Prezentacja - Microsoft Powerpoint,
      • Dokumentacja - Microsoft Word,
      • Przeprowadzenie transakcji - PayPal,
      • Instrukcje użytkownika - Scribe,
      • Specyfikacja API - Swagger.

Architektura aplikacji:

Aplikacja została zrealizowana w architekturze monolitycznej. Aplikacja kliencka jest uruchamiana po stronie aplikacji serwerowej.

Schemat bazy danych:

Tabele bazy danych:

Specyfikacja API:

Zrzuty ekranu:

Strona główna:

Aplikacja jest w pełni responsywna do szerokości równej 500px np. widok strony głównej:

Rejestracja

Dane Osobowe:

Regulamin:

Logowanie:

Resetowanie hasła

Podanie adresu e-mail, który został podany przy tworzeniu konta w serwisie:

Na podany e-mail zostaje wysłany token, który trzeba będzie później wpisać na stronie:

Wprowadzenie otrzymanego tokena oraz ustalenie nowego hasła:

Dane konta:

Edycja danych konta:

Wyszukiwarka ebooków:

Szczegóły ebooka:

Recenzje ebooka:

Dodawanie recenzji o ebooku:

Zgłoszenie ebooka np. z powodu plagiatu:

Zakup ebooków

Koszyk:

Po złożeniu zamówienia następuje przekierowanie do strony PayPal:

Po zalogowaniu się można już przeprowadzić transakcję:

Transakcja przebiegła pomyślnie:

Historia zamówień:

Szczegóły zamówienia:

Lista zakupionych ebooków:

Treść ebooka:

Panel twórcy:

Statystyki twórcy:

Wypłacanie pieniędzy:

Podanie kwoty:

Wypłaty są dokonywane zewnętrznie przez administratora na podstawie otrzymanych e-maili o żądaniach wypłat:

Lista utworzonych książek:

Tworzenie ebooka:

Stworzony ebook jest jeszcze niezweryfikowany, czyli niewidoczny dla standardowych użytkowników:

Jeśli ebook zostanie odrzucony, to autor tego ebooka będzie musiał go poprawić:

Jeśli ebook zostanie zaakceptowany, to ebook ten będzie widoczny dla innych użytkowników i tym samym będą mogli go zakupić:

Edycja ebooka:

Usuwanie ebooka:

Ustawienie promocji ebooka:

Konfiguracja:

Stworzona promocja:

Ebook z ustawioną promocją jest widoczny w sekcji ebooków z promocjami:

Wyrożnienie ebooka:

Wykorzystanie darmowego wyróżnienia albo jego zakupienie:

Przekierowanie do strony PayPal:

Po zalogowaniu się jest możliwe przeprowadzenie transakcji:

Komunikat o pomyślnym przeprowadzeniu transakcji:

Widok wyrożnionego ebooka:

Premium:

Nieaktywne konto premium:

Wybór planu premium:

Przekierowanie do strony PayPal:

Zatwierdzenie transakcji:

Informacja o pomyślnym przeprowadzeniu transakcji:

Widok aktywnego statusu konta premium:

Ułatwienia dostępu:

Strona główna (odniesienie):

Powiększenie tekstu:

Tryb nocny:

Regulamin:

Weryfikacja ebooków (Recenzent)

Lista ebooków do zweryfikowania:

Formularz weryfikacji ebooka:

Zarządzanie użytkownikami (Administrator):

Lista użytkowników:

Dane użytkownika:

Zgłoszenia (Administrator):

Lista zgłoszeń:

Widok zgłoszenia ebooka:

Dostępne statusy zgłoszeń:

Instrukcje użytkownika:

About

It is ebook shop web app. Users can add own ebooks and other users can buy these ebooks - authors and website owners can earn money. Other functions are plagiarism detection, premium accounts and highlighting ebooks.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 53.6%
  • C# 44.3%
  • JavaScript 1.5%
  • Other 0.6%