Przejdź do głównej zawartości

Aplikacja "Co Komu Kiedy" - case study...

 Witam Was wszystkich. Dzisiaj chciałbym się z Wami podzielić moim pomysłem na aplikację, której nigdy nie napisałem. Wymyśliłem ją razem z moim kolegą Tomkiem. Zapraszam do obejrzenia projektu aplikacji "Co Komu Kiedy".

Poniższy post jest specyfikacją funkcjonalną aplikacji wspomagającej zarządzanie pożyczonymi rzeczami. W skład projektu wchodzą:

  • Dokumentacja techniczna
  • Aplikacja SaaS ( Software as a Service )
  • Aplikacja mobilna dla iPhone'a i iPad'aAplikacja mobilna dla Android'a
  • Aplikacja dla Windows'a
  • Aplikacja dla Mac'a
  • Aplikacja dla Linux'a
  • Strona WWW promująca gotowy produkt

Etapy pracy nad projektem

  • Utworzenie dokumentacji techncznej przyszłego produktu CoKoKi
  • Wykupienie domeny internetowej www.cokoki.pl
  • Wykupienie certyfikatu SSL dla domeny głównej oraz subdomen
  • Zaprojektowanie serwisu SaaS
  • Implementacja serwisu SaaS w technologii : javascript, HTML5 oraz CSS3 oraz PHP i MySQL
  • Implementacja aplikacji dla iPhone'a & iPad'a
  • Implementacja aplikacji dla Android'a
  • Implementacja aplikacji Windows'a oraz Linux'a oraz MAC'a
  •  Zaimplementowanie bramki SMS GateWay w powyższym serwisie poprzez web services
  • Weryfikacja aplikacji pod względem USABILITY
  • Utworzenie strony internetowej promującej gotowy produkt
  • Wypromowanie gotowego produktu w internecie

Dostępne platformy aplikacji

  • w chmurze pod adresem http://www.cokoki.pl
  •  Windows
  • Mac
  • iPhone & iPad
  • Android
  • Linux

Bezpieczeństwo aplikacji

  • Nasza infrastruktura serwerowa będzie zaprojektowana z myślą o bezpieczeństwie danych użytkowników aplikacji CoKoKi.
  • Aby zagwarantować nieprzerwane świadczenie usług będziemy wykonywać częste backupy danych do bezpiecznych centrów danych przy użyciu szyfrowanych połączeń.
  • Hasła naszych użytkowników będą "haszowane" przy pomocy funkcji md5 

Użyte technologie

  • PHP
  • JavaScript (jQuery)
  • HTML5 i CSS3
  • Swift (iPhone)
    https://developer.apple.com/swift
  •  Baza danych SQLite
     http://www.sqlite.org
  •  Baza danych MySQL
     http://www.mysql.com
  • Certyfikat SSL zweryfikowany przez firmę DigiCert
     https://www.digicert.com
  • Bramka SMS'owa SMSGateWay stworzona przez firmę BlueMedia
     https://www.bluemedia.pl
 

Środowiska programistyczne

  • Adobe AIR SDK ( darmowe )
  • Xcode ( darmowe )
     https://developer.apple.com/xcode/downloads

Oprogramowanie pomocnicze

  •  System kontroli wersji GIT
       https://git-scm.com
  •  Aplikacja EverNote do robienia notatek
     https://evernote.com/intl/pl
  •  Aplikacja Nozbe do zarządzania projektami
     https://nozbe.com/pl

Interfejs aplikacji

  • zarządzanie kontaktami

    • dodawanie nowego kontaktu

    • usuwanie kontaktu

    • edycja istniejącego kontaktu

  • zarządzanie pożyczonymi rzeczami

    • dodawanie nowego przedmiotu

    • usuwanie przedmiotu

    • edycja istniejącego przedmiotu

  • zarządzanie zdjęciami dodanych przedmiotów

    • dodawanie nowego zdjęcia

    • usuwanie zdjęcia

Nowinki techniczne

  • Użytkownik systemu CoKoKi będzie mógł zrobić zdjęcie pożyczonego przedmiotu na swoim telefonie i w prosty sposób wstawić je do tabeli rzeczy.

  • Użytkownik systemu CoKoKi będzie dostawał SMS'a przypominającego o odbiorze pożyczonego przedmiotu.

Nasza aplikacja będzie korzystać z bramki SMS. Oto jej parametry:

  • Chcielibyśmy korzystać z bramki SMS’owej używając web services z wykorzystaniem technologii SOAP lub REST API

  • Do wymiany danych chcielibyśmy wykorzystać format JSON lub XML

  • Nasza aplikacja jest napisana w PHP oraz JavaScript. Chcielibyśmy wykorzystać język WSDL

  • W interfejsie chcielibyśmy korzystać z następujących metod:

    • wysyłka SMS z naszej aplikacji na telefon komórkowy

    • sprawdzenie statusu doręczenia wiadomości

  • Chcielibyśmy aby interfejs wykorzystywał połączenie HTTPS poprzez wykorzystanie protokołu SSL (port 443)

  • Znaki powinny być kodowane w standardzie UTF-8

Planowana współpraca z innymi firmami

  •  Hosting WWW - Firma HitMe

     https://hitme.pl

  •  Certyfikat SSL - Firma HitMe ( dzięki firmie DIGICERT )

     https://hitme.pl

  • Bramka SMS - Firma Blue Media

    https://bluemedia.pl

  •  Rejestracja domeny - Firma OVH

     https://www.ovhcloud.com/pl

Abonamenty

Aplikacja będzie dostępna w wersji basic - darmowej oraz wersji premium - płatnej. Kliknij na poniższy rysunek aby powiększyć.


Formy płatności

  • PayU
  • PayPal
  • Przelewy 24
 

Projekt techniczny aplikacji "Co Komu Kiedy"

Organizacja katalogów systemu

  • http://www.cokoki.pl
    witryna promująca aplikację CoKoKi

  • https://app.cokoki.pl
    strona weryfikująca na jakim urządzeniu będzie uruchomiona aplikacja

  • http://help.cokoki.pl
    witryna będąca pomocą techniczną dla aplikacji CoKoKi

Organizacja bazy danych - wykaz tabel

  • Tabela kontakty przechowuje listę osób, które coś pożyczyły od użytkownika systemu.

  • Tabela rzeczy przechowuje rzeczy (przedmioty), które zostały pożyczone przez osoby z tabeli kontakty.

  • Tabela relacje informuje nas jaką rzecz (przedmiot) mamy oddzyskać od danej osoby z tabeli kontakty.

  • Tabela uzytkownicy przechowuje dane użytkownika systemu.

Organizacja bazy danych - struktura

  • Tabela kontakty

    • ID INT(10) NOT NULL AUTO_INCREMENT

    • NR_UZYTKOWNICY INT(10)

    • NICK VARCHAR(100)

    • EMAIL VARCHAR(100)

    • FOTOGRAFIA VARCHAR(200)

  • Tabela rzeczy

    • ID INT(10) NOT NULL AUTO_INCREMENT

    • NR_UZYTKOWNICY INT(10)

    • PRZEDMIOT VARCHAR(100)

    • FOTOGRAFIA VARCHAR(200)

  • Tabela relacje

    • ID INT(10) NOT NULL AUTO_INCREMENT

    • NR_UZYTKOWNICY INT(10)

    • NR_KONTAKTY INT(10)

    • NR_RZECZY INT(10)

    • DATA_ZWROTU DATE

  • Tabela uzytkownicy

    • ID INT(10) NOT NULL AUTO_INCREMENT

    • LOGIN VARCHAR(100)

    • HASLO VARCHAR(100)

    • EMAIL VARCHAR(100)

Organizacja bazy danych - relacje między tabelami

  • rzeczy(ID) jest w relacji relacje(NR_RZECZY)
    Jest to to relacja jeden do wielu.

  • kontakty(ID) jest w relacji relacje(NR_KONTAKTY)
    Jest to to relacja jeden do wielu.

  • uzytkownicy(ID) jest w relacji rzeczy(NR_UZYTKOWNICY)
    Jest to to relacja jeden do wielu.

  • uzytkownicy(ID) jest w relacji kontakty(NR_UZYTKOWNICY)
    Jest to to relacja jeden do wielu.

  • uzytkownicy(ID) jest w relacji relacje(NR_UZYTKOWNICY)
    Jest to to relacja jeden do wielu.

Książki, które przeczytałem w celu napisana tej specyfikacji   

  • Jakob Nielsen, Raluca Budiu, Funkcjonalność aplikacji mobilnych, Wydawnictwo Helion
  • Edward Hasted, Sprzedaj swój software, Wydawnictwo Helion.

Komentarze