Opis techniczny. Kalkulator outsourcingu: Generator e-n-go. Cieszyn, listopad 2013 r.

Podobne dokumenty
Opis techniczny aplikacji

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Wdrożenie modułu płatności eservice. dla systemu Magento

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

System Wniosków DWZ AGH

Politechnika Częstochowska. Projektowanie systemów użytkowych II

Opis działania portalu Elektroniczny Generator Wniosków (styczeń 2015)

Języki programowania wysokiego poziomu. Ćwiczenia

SZCZEGÓŁOWY OPIS SPOSOBU DOSTĘPU DO INFORMACJI I DANYCH ZAWARTYCH W RAPORTACH SKŁADANYCH DO KRAJOWEJ BAZY DLA GIOŚ I WIOŚ

TABUN_CMS. System zarządzania treścią dla dedykowanej grupy użytkowników. Tabun_CMS 2008 Marcin Biegun, Szymon Bąk

Wymagania systemowe po stronie serwera

Zarządzaj projektami efektywnie i na wysokim poziomie. Enovatio Projects SYSTEM ZARZĄDZANIA PROJEKTAMI

Połączenie Partnera z serwisem JustPay poprzez - METODĘ 2

SCENARIUSZE ĆWICZEŃ DLA UŻYTKOWNIKÓW ZEWNĘTRZNYCH SYSTEMU INFORMATYCZNEGO NAWIKUS

Przewodnik po systemie

Wykład 05 Bazy danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Wykład 2. SQL 1 Structured Query Lenguage

Wykład 5: PHP: praca z bazą danych MySQL

Podstawy technologii WWW

Język SQL, zajęcia nr 1

Instrukcja użytkownika

System generacji raportów

Dokumentacja SQL API 1

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Podręcznik Użytkownika LSI WRPO

Instrukcja rejestracji organizacji w podsystemie Generator Wniosko w Aplikacyjnych (GWA) Systemu Informatycznego NAWIKUS

Szczegółowy opis przedmiotu zamówienia

Sesje i logowanie. 1. Wprowadzenie

Szczegółowa specyfikacja funkcjonalności zamawianego oprogramowania.

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Specyfikacja techniczna GoBiz Virtual Office - systemu dostępu do zasobów wirtualnego biura przez Internet

GoBiz System platforma współpracy marektingowej

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

INSTRUKCJA REJESTRACJI ORGANIZACJI W GENERATORZE WNIOSKÓW APLIKACYJNYCH SI NAWIKUS

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Dokumentacja interfejsu MySQL. Platforma BSMS.PL Instrukcja podłączenia po przez mysql

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Instalacja aplikacji

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.2/2015

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter

OPIS PRZEDMIOTU ZAMÓWIENIA

Wykład 6: PHP: praca z bazą danych MySQL, cz.2

Projektowanie systemów baz danych

Instrukcja rejestracji organizacji w podsystemie. Generator Wniosków Aplikacyjnych (GWA) Systemu Informatycznego NAWIKUS

INSTRUKCJA OBSŁUGI USTAWIEŃ DYNAMICZNIE PRZEDZIELANYCH ADRESÓW IP W URZĄDZENIACH SYSTEMU IP-PRO ORAZ REJESTRATORACH MY-DVR

Podstawy technologii WWW

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji src/ - folder zawiera cały kod PHP aplikacji

Materiał szkoleniowy:

Instrukcja. Rejestracji i aktywacji konta w systemie so-open.pl DOTACJE NA INNOWACJE; SOFTWARE OPERATIONS SP. Z O. O.

Podręcznik użytkownika

1. Rejestracja 2. Logowanie 3. Zgłaszanie nowego wniosku projektowego

app/ - folder zawiera pliki konfiguracyjne dla całej aplikacji Można wybrać sposób zapisu konfiguracji: YML, XML, PHP

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Podręcznik Administratora Szkoły

SCENARIUSZE ĆWICZEŃ DLA UŻYTKOWNIKÓW WEWNĘTRZNYCH SYSTEMU INFORMATYCZNEGO NAWIKUS

Autor: Joanna Karwowska

REGULAMIN KORZYSTANIA Z SERWISU INTERNETOWEGO Lloyd Properties sp. z o.o.

Pomoc do programu Oferent

Instrukcja stosowania platformy internetowej "Szkoła praktycznej ekonomii - młodzieżowe miniprzedsiębiorstwo" - zakładka Nauczyciel

Formularz rankingowy dla doktorantów - instrukcja obsługi dla Doktoranta

Instalacja systemu zarządzania treścią (CMS): Joomla

System epon Dokumentacja użytkownika

EXSO-CORE - specyfikacja

5. Wypełniony formularz należy zatwierdzić klikając na przycisk ZATWIERDŹ.

Instrukcja logowania i realizacji podstawowych transakcji w systemie bankowości internetowej dla klientów biznesowych BusinessPro.

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/4.1.4/2015

Aplikacja serwerowa Platformy Prezentacyjnej Opis produktu

INSTRUKCJA UŻYTKOWNIKA

E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL.

Laboratorium 7 Blog: dodawanie i edycja wpisów

FORMULARZ ZAPYTANIA OFERTOWEGO o wartości zamówienia poniżej euro

INSTRUKCJA UŻYTKOWNIKA GENERATORA WNIOSKÓW O DOFINANSOWANIE DLA WNIOSKODAWCÓW

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Instrukcja Obsługi aplikacji Generator wniosków

Sage Migrator 2019.e Migracja do Sage 50c wersja 2019.a i 2019.b

VENUS-BEAUTY.pl. Instrukcja obsługi procesu zamówienia

Podręcznik Użytkownika. Systemu sprawozdań finansowych i merytorycznych Organizacji Pożytku Publicznego

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

SIECI KOMPUTEROWE I BAZY DANYCH

Witkac.pl. Platforma do zlecania zadań publicznych przez samorządy organizacjom pozarządowym

Instrukcja składania wniosku o dofinansowanie w systemie informatycznym IP na potrzeby konkursu nr 1/1.1.1/2015

BADANIE RYNKU I WYMAGANIA FUNKCJONALE


Praca w programie dodawanie pisma.

REFERAT O PRACY DYPLOMOWEJ

ELEKTRONICZNA KSIĄŻKA ZDARZEŃ

Instrukcja instalacji środowiska testowego na TestingCup wersja 1.0

ZASADY KORZYSTANIA Z PLIKÓW COOKIES ORAZ POLITYKA PRYWATNOŚCI W SERWISIE INTERNETOWYM PawłowskiSPORT.pl

SYSTEM DIALOGU SPOŁECZNEGO INSTRUKCJA DLA UŻYTKOWNIKÓW CZĘŚCI PUBLICZNEJ SYSTEMU

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

Wprowadzenie do systemów informatycznych wspierających wdrażanie programów operacyjnych w latach : SOWA i SL2014

Multi-projekt z przedmiotów Inżynieria oprogramowania, Współczesne bazy danych i Programowanie w języku Java

Regulamin Internetowego Biura Obsługi Klienta

Baza danych do przechowywania użytkowników

Transkrypt:

Kalkulator outsourcingu: Generator e-n-go Cieszyn, listopad 2013 r.

Projektodawca: Stowarzyszenie Wspierania Inicjatyw Gospodarczych DELTA PARTNER Ul. Zamkowa 3A / 1, 43 400 Cieszyn Tel. (33) 851 44 81, fax: (33) 851 44 81 biuro@deltapartner.org.pl, projekt@kalkulatorngo.pl www.kalkulatorngo.pl Partner projektu: Miasto Ustroń Ul. Rynek 1, 43-450 Ustroń Tytuł projektu: Kalkulator outsourcingu: Generator e-n-go Numer umowy zawartej z instytucją weryfikującą: UDA.POKL.05.04.02-00-E24/11-00 Wykonawca techniczny: www.ktsoft.pl Cieszyn 2013 Projekt Kalkulator outsourcingu: Generator e-n-go jest współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego.

Spis treści Wprowadzenie... 5 Architektura systemu... 5 Wymagania sprzętowe i programowe... 8 Wykorzystane technologie informatyczne... 10 Opis struktury katalogów projektu... 11 Katalog główny... 11 Diagram struktury bazy danych... 12 Opis struktury bazy danych... 13 Tabela - Groups... 13 Tabela - Jednostki... 14 Tabela - Migrations... 14 Tabela - Oferenci... 15 Tabela - Oferenci_reprezentanci... 16 Tabela - Zadania_edycje... 17 Tabela - Zadania_zakres... 18 Tabela - Zadania... 18 Tabela - Users... 19 Tabela - Oferty... 20 Tabela - Oferty_dane... 21 Tabela - Oferty_oferenci... 22 Tabela - Oferty_zakresy_realizacji... 24 Tabela - Oferty_harmonogram... 25 Tabela - Oferty_historia... 26 Tabela - Oferty_inne_informacje... 27 Tabela - Oferty_inne_zrodla_finansowe... 28 Tabela - Oferty_kosztorysy... 28 Tabela - Oferty_oferenci_reprezentanci...30 Tabela - Oferty_oswiadczenia... 30 Tabela - Oferty_zrodla_finansowe... 31 Strona 3

Kalkulator outsourcingu: Generator e-n-go Tabela - Pomoc... 32 Tabela - Sprawozdania... 33 Tabela - Sprawozdania_faktury... 34 Tabela - Sprawozdania_finanse... 35 Tabela - Sprawozdania_inne... 36 Tabela - Sprawozdania_koszty... 37 Tabela - Sprawozdania_merytoryczne... 38 Tabela - Sprawozdania_merytoryczne_dzialania...38 Tabela - Throttle... 39 Tabela - Users_groups... 40 Tabela - Wskazniki... 41 Tabela - Wskazniki_oferty... 41 Tabela - Wskazniki_zadania_zakres... 42 Tabela - Zadania_linki... 43 Tabela - Zalaczniki... 44 Lista zdefiniowanych klas podstawowych... 46 AuthController... 46 HelpController... 47 EditionsController... 47 OffertController... 47 PdfController... 47 ReportController... 47 TaskController... 47 PointersController... 47 UnitsController... 47 UsersController... 48 Strona 4

Wprowadzenie Dokument zawiera informacje pomocne przy instalacji systemu i jego ewentualnej rozbudowie. Adresowany jest głównie dla informatyków obsługujących Jednostki Administracji Publicznej (JST). Rozdziały dotyczące wymagań sprzętowych czy stosowanych technologii informatycznych są szczególnie istotne dla JST samodzielnie instalujących generator. Dla JST korzystających z serwera firmy Delta mają mniejsze znaczenie. W najobszerniejszym rozdziale Opis struktury bazy danych przedstawiono schemat tablic z bazy danych (SQL). Opisano w nim wszystkie tablice systemu dane te są przydatne dla rozbudowy i modyfikacji systemu. Architektura systemu Aplikacja Generator e-n-go została zrealizowana w oparciu o architekturę klient-serwer (cienki klient) z wykorzystaniem technologii webowych (PHP i MySQL) Architektura klient-serwer wydaje się być najwłaściwszą dla tego typu aplikacji. Pobieranie, zapisywanie i analiza danych odbywa się na serwerze, po czym wyniki tych operacji są generowane jako kod HTML, wysyłane do komputera-klienta i wyświetlane. Dzięki zastosowaniu takiej technologii zredukowane zostały wymagania co do mocy obliczeniowych komputera użytkownika - rolę interfejsu pełni dowolna przeglądarka internetowa. Zalety architektury klient-serwer Wszystkie informacje przechowywane są na serwerze, wobec tego możliwe jest lepsze zabezpieczenie danych. Serwer może decydować kto ma prawo do odczytywania i zmiany danych. Wieloplatformowość aplikacji dzięki temu występuje duża dostępność systemu. Brak tutaj ograniczenia co do systemu operacyjnego lub urządzenia. Wymagane jest tylko urządzenie posiadające przeglądarkę WWW. Strona 5

Kalkulator outsourcingu: Generator e-n-go Całość prac administracyjnych i konserwacyjnych ogranicza się do przestrzeni serwera aplikacji, nie zaś klienta. Eliminuje to całkowicie konieczność wprowadzania zmian na każdym komputerze klienta. Globalna dystrybucja najnowszej wersji oprogramowania. Wgrywamy najnowszą wersję na serwer i automatycznie wszyscy użytkownicy korzystają z najnowszej wersji oprogramowania. Umożliwia to szybkie poprawianie błędów wykrytych w aplikacji w trakcie użytkowania a zgłoszonych przez użytkowników. Wady architektury klient-serwer Wadą architektury typu klient serwer może być natomiast zbyt duża liczba odbiorców (co jest również zaletą), co z kolei może prowadzić do trudności z przepustowością oraz do podobnych problemów natury technicznej. Kiedy serwer nie będzie funkcjonował poprawnie, wówczas dostęp do zasobów może być niemożliwy dla wszystkich klientów. W przypadku dużej liczby klientów potrzebny jest wydajny serwer wraz z łączem internetowym o odpowiedniej przepustowości. Schemat działania w architekturze klient serwer Strona 6

Wymagania sprzętowe i programowe Serwer - sprzęt Aplikacja Generator e-n-go została zainstalowana na serwerze o podanej specyfikacji co zapewnia optymalne działanie serwera na obecnym etapie realizacji projektu oraz zapewnia poprawne działanie aplikacji po końcowym wdrożeniu systemu dla Miasta Ustroń. Procesor: Intel Xeon z serii E5-2600 Pamięć RAM: 16GB HDD: 1TB (Raid 1) Serwer oprogramowanie Serwer działa w oparciu o system Debian Linux w wersji 7.0 (http://www.debian.org/) Serwer WWW Apache w wersji 2.2 wzwyż (http://apache.org/) PHP wersji 5.3.10+, rekomendowana wersja 5.4+ (http://php.net/) Baza danych MySQL w wersji 5.5 wzwyż Na serwerze wymagane jest również zainstalowanie menedżera zależności dla PHP - composer (http://getcomposer.org/) Strona 7

Kalkulator outsourcingu: Generator e-n-go Klient Dla klienta końcowego wymagania systemowe nie są zbyt wygórowane, gdyż wymagany jest dowolny komputer lub tablet z przeglądarką internetową oraz dostępem do sieci internet. Zalecana rozdzielczość ekranu to 1280x800 lub więcej. Dzięki tak niewielkim wymaganiom od strony klienta aplikacja jest dostępna dla szerokiego grona odbiorców którymi są organizacje pozarządowe co nie narzuca dodatkowych kosztów na te organizacje. Istnieje również możliwość korzystania z Generatora e-n-go z telefonu komórkowego (smartphone) ale z racji ograniczenia wielkości ekranu i rozdzielczości wykonywanie pewnych funkcji może być utrudnione. Funkcja ta nie była pierwotnym założeniem wymagań stawianych przed systemem ale jest również dodatkowo wdrażana i w przyszłości zostanie również dopracowana, kiedy projekt zostanie już uruchomiony w skali globalnej. Wspierane przeglądarki internetowe: Internet Explorer 9+ Firefox 6+ Opera 11+ Chrome 3+ Safari 4+ Strona 8

Wykorzystane technologie informatyczne Realizacja aplikacji opiera się na wykorzystaniu ogólnodostępnych, darmowych technologii programistycznych związanych ze skryptowym językiem programowania PHP. Repozytorium danych stanowi relacyjna baza danych MySQL, zaś do budowania ekranów formularzy wykorzystano głównie framework CSS Bootstrap. Rolę serwera aplikacji pełni serwer Apache z uruchomionym modułem PHP w wersji 5.4. Na serwerze jest również zainstalowane narzędzie composer, które służy do zarządzania zależnościami języka PHP Generator e-n-go został stworzony w oparciu o framework Laravel w wersji 4. (http://laravel.com/) Do autoryzacji i zarządzania kontami użytkowników wykorzystana została biblioteka Sentry2. Strona 9

Kalkulator outsourcingu: Generator e-n-go Opis struktury katalogów projektu Katalog główny Katalog główny na serwerze zawiera następujące katalogi: app Katalog zawiera pliki powiązane z projektem. Zawiera kod źródłowy aplikacji, wszystkie klasy aplikacji, modele, widoki bootstrap Katalog zawiera pliki potrzebne do uruchomienia framework'a na którym została zbudowana aplikacja w momencie żądania strony przez przeglądarkę internetową. vendor Katalog zawiera wszystkie biblioteki instalowane za pomocą composer, kod źródłowy framework'a. Tutaj jest zainstalowny framework Laravel, biblioteka Sentry2, biblioteka generowania plików pdf (tcpdf) oraz inne zależności i biblioteki wymagane do działania aplikacji. public Jest to główny katalog serwera www dostępny dla użytkowników z poziomiu przeglądarki, zawiera pliki css, img, Javascript. Strona 10

Diagram struktury bazy danych Strona 11

Kalkulator outsourcingu: Generator e-n-go Opis struktury bazy danych Opis zawiera strukturę bazę danych wraz z opisem przeznaczenia poszczególnych tabel używanych w systemie. W poniższym opisie nie są widoczne wszystkie powiązania pomiędzy poszczególnymi tabelami. Te są widoczne na diagramie na poprzedniej stronie. Tabela - Groups Tabela zawiera role użytkowników w systemie e-n-go. Na chwilę obecną w systemie są zdefiniowane 2 role. JST - jednostka samorządu terytorialnego. NGO-klient organizacja pozarządowa. W przyszłości będzie istniała możliwość rozbudowy systemu o kolejne rolę które będą posiadały dodatkowe funkcjonalności niż dotychczas założone w systemie jak np. obserwator (burmistrz) który będzie mógł śledzić pracę urzędników odpowiedzialnych za przepływ danych w systemie. -- Table `engo`.`groups` CREATE TABLE IF NOT EXISTS `engo`.`groups` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL, `permissions` TEXT CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL, `created_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', `updated_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', UNIQUE INDEX `groups_name_unique` (`name` ASC) ) DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci; Strona 12

Tabela - Jednostki Tabela zawiera zdefiniowane jednostki które są używane do wypełniania pozycji kosztorysowych. Możliwość edycji jednostek czy zarządzanie dostępnymi jednostkami w systemie jest możliwe z poziomu JST (Urząd Miasta). Ustawienia Jednostki. -- Table `engo`.`jednostki` CREATE TABLE IF NOT EXISTS `engo`.`jednostki` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `nazwa` VARCHAR(32) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL, PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci; Tabela - Migrations Jest to wewnętrzna tabela systemowa na potrzeby aplikacji generatora zawierająca aktualny stan migracji bazy danych odpowiada za aktualizację struktury bazy danych. Nie zawiera żadnych danych użytkowników. -- Table `engo`.`migrations` CREATE TABLE IF NOT EXISTS `engo`.`migrations` ( `migration` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL, `batch` INT(11) NOT NULL ) DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci; Strona 13

Kalkulator outsourcingu: Generator e-n-go Tabela - Oferenci Tabela zawiera oferentów którzy zarejestrowali się w systemie e-n-go wraz z wszystkim danymi odnośnie oferenta. -- Table `engo`.`oferenci` CREATE TABLE IF NOT EXISTS `engo`.`oferenci` ( `id_user` VARCHAR(45) NULL DEFAULT NULL, `main` TINYINT(1) NOT NULL DEFAULT '0', `nazwa` VARCHAR(64) NOT NULL, `forma_prawna` ENUM('stowarzyszenie','fundacja','koscielna_osoba','spoldzielnia','koscielna_jednostka','inna') NOT NULL, `forma_prawna_inna` VARCHAR(32) NOT NULL, `krs` VARCHAR(10) NOT NULL, `data_wpisu` DATE NOT NULL, `nip` VARCHAR(13) NOT NULL, `regon` VARCHAR(10) NOT NULL, `miejscowosc` VARCHAR(48) NOT NULL, `ulica` VARCHAR(48) NOT NULL, `dzielnica` VARCHAR(32) NULL DEFAULT NULL, `gmina` VARCHAR(32) NOT NULL, `powiat` VARCHAR(32) NULL DEFAULT NULL, `wojewodztwo` VARCHAR(32) NOT NULL, `kod_pocztowy` VARCHAR(6) NOT NULL, `poczta` VARCHAR(32) NOT NULL, `telefon` VARCHAR(10) NULL DEFAULT NULL, `fax` VARCHAR(10) NULL DEFAULT NULL, `email` VARCHAR(45) NULL DEFAULT NULL, `www` VARCHAR(45) NULL DEFAULT NULL, Strona 14

`bank_konto` VARCHAR(32) NOT NULL, `bank_nazwa` VARCHAR(64) NOT NULL, `jednostka_organizacyjna` VARCHAR(90) NOT NULL, `osoba_upowazniona` VARCHAR(64) NOT NULL, `dzialalnosc_odplatna` TEXT NOT NULL, `dzialalnosc_nieodplatna` TEXT NOT NULL, `numer_wpisu` VARCHAR(20) NULL DEFAULT NULL, `przedmiot_dzialalnosci` TEXT NULL DEFAULT NULL, `created_at` DATETIME NULL DEFAULT NULL, `updated_at` DATETIME NULL DEFAULT NULL, PRIMARY KEY (`id`) ) Tabela - Oferenci_reprezentanci Tabela zawiera dane osób reprezentujących danego oferenta zdefiniowanego w systemie, wraz ze stanowiskiem oraz numerem telefonu. Osoby reprezentujące powinny być zgodne z wpisem KRS zarejestrowanej instytucji. -- Table `engo`.`oferenci_reprezentanci` CREATE TABLE IF NOT EXISTS `engo`.`oferenci_reprezentanci` ( `id_oferenci` INT(11) NOT NULL, `nazwa_reprezentanta` VARCHAR(45) NOT NULL, `telefon` VARCHAR(20) NULL DEFAULT NULL, `stanowisko` VARCHAR(64) NULL DEFAULT NULL, INDEX `fk_oferenci_reprezentanci_oferenci1_idx` (`id_oferenci` ASC), CONSTRAINT `fk_oferenci_reprezentanci_oferenci1` Strona 15

Kalkulator outsourcingu: Generator e-n-go FOREIGN KEY (`id_oferenci` ) REFERENCES `engo`.`oferenci` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION) Tabela - Zadania_edycje Tabela zawiera zdefiniowane edycje konkursów ogłoszone przez Urząd Miasta. Są to tzw. kontenery na ogłaszane zadania. W ramach takiej edycji może być ogłaszanych nieskończenie wiele zadań. Każda taka edycja posiada termin zakończenia składania wniosków ofertowych w ramach edycji konkursu. -- Table `engo`.`zadania_edycje` CREATE TABLE IF NOT EXISTS `engo`.`zadania_edycje` ( `nazwa` VARCHAR(64) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL, `rok` INT(11) NOT NULL, `data_zakonczenia` DATETIME NOT NULL, `stan` SMALLINT(6) NOT NULL, `created_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', `updated_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci; Strona 16

Tabela - Zadania_zakres Tabela zawiera zdefiniowane zakresy zadań zgodne z Dz.U. 2003 nr 96 poz. 873. Ustawa pochodzi z dnia 24 kwietnia 2003 r. o działalności pożytku publicznego i o wolontariacie. -- Table `engo`.`zadania_zakres` CREATE TABLE IF NOT EXISTS `engo`.`zadania_zakres` ( `id` TINYINT(4) NOT NULL AUTO_INCREMENT, `nazwa` VARCHAR(255) NOT NULL, PRIMARY KEY (`id`) ) Tabela - Zadania Tabela zawiera zadania publiczne ogłoszone do realizacji przez Urząd Miasta. Zadania te są tworzone i zarządzane z poziomu JST. -- Table `engo`.`zadania` CREATE TABLE IF NOT EXISTS `engo`.`zadania` ( `id_zakres` TINYINT(4) NOT NULL, `id_zadania_edycje` INT(11) NOT NULL, `tytul` VARCHAR(128) NOT NULL, `uwagi` TEXT NULL DEFAULT NULL, `opis` TEXT NULL DEFAULT NULL, `kwota` DECIMAL(12,2) NULL DEFAULT NULL, `data_start` DATE NOT NULL, `data_koniec` DATE NOT NULL, Strona 17

Kalkulator outsourcingu: Generator e-n-go `stan` TINYINT(1) NOT NULL, `created_at` TIMESTAMP NULL DEFAULT NULL, `updated_at` TIMESTAMP NULL DEFAULT NULL, `typ_zadania` TINYINT(1) UNSIGNED ZEROFILL NULL DEFAULT '1' COMMENT '0 ramowe 1 sprecyzowane', `bip_url` VARCHAR(128) NULL DEFAULT NULL, Tabela - Users Tabela zawiera wszystkie konta użytkowników zdefiniowanych w systemie. Za pomocą tych kont użytkownicy logują się w systemie. Konta te są tworzone w momencie rejestracji użytkowników w systemie po wypełnieniu stosownego formularza. Konto musi zostać aktywowane, informacja o tym czy jest aktywne zawarta jest w polu activated. -- Table `engo`.`users` CREATE TABLE IF NOT EXISTS `engo`.`users` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `email` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL, `password` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL, `permissions` TEXT CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL, `activated` TINYINT(1) NOT NULL DEFAULT '0', `activation_code` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL, `activated_at` TIMESTAMP NULL DEFAULT NULL, `last_login` TIMESTAMP NULL DEFAULT NULL, `persist_code` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL, Strona 18

`reset_password_code` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL, `first_name` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL, `last_name` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL, `created_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', `updated_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', `deleted_at` TIMESTAMP NULL DEFAULT NULL, `website` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL, `country` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL, `gravatar` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL, UNIQUE INDEX `users_email_unique` (`email` ASC) ) DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci; Tabela - Oferty Tabela zawiera nagłówki wszystkich ofert składanych przez oferentów w odpowiedzi na ogłoszone zadania. Oferty mogą mieć status wersji roboczej, złożonej, zaakceptowanej -- Table `engo`.`oferty` CREATE TABLE IF NOT EXISTS `engo`.`oferty` ( `id_zadania` INT(11) NOT NULL, `id_uzytkownika` INT(10) UNSIGNED NOT NULL, `wersja` SMALLINT(6) NOT NULL COMMENT 'Wersja złożonej oferty', `numer` VARCHAR(16) NOT NULL, `stan` TINYINT(1) NOT NULL COMMENT '0 robocza 1 zlożona 2 zaakceptowana', `miejsce` VARCHAR(45) NULL DEFAULT NULL COMMENT 'Miejsce złożenia oferty', `checksum` VARCHAR(32) NULL DEFAULT NULL COMMENT 'Suma kontrolna wygenerowanej oferty', Strona 19

Kalkulator outsourcingu: Generator e-n-go `created_at` DATETIME NOT NULL, `updated_at` DATETIME NULL DEFAULT NULL, `nazwa_zadania` VARCHAR(128) NULL DEFAULT NULL, INDEX `fk_oferty_zadania` (`id_zadania` ASC), INDEX `fk_oferty_1_idx` (`id_zadania` ASC), INDEX `FK_oferty_users` (`id_uzytkownika` ASC), CONSTRAINT `fk_oferty_1` FOREIGN KEY (`id_zadania` ) REFERENCES `engo`.`zadania` (`id` ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `FK_oferty_users` FOREIGN KEY (`id_uzytkownika` ) REFERENCES `engo`.`users` (`id` ) ON DELETE NO ACTION ON UPDATE NO ACTION) Tabela - Oferty_dane Tabela jest rozszerzeniem tabeli oferty, zawiera dane wpisywane we wniosku w zakładce 2. Szczegółowy zakres -- Table `engo`.`oferty_dane` CREATE TABLE IF NOT EXISTS `engo`.`oferty_dane` ( `id_oferty` INT(11) NOT NULL DEFAULT '0', `reprezentacja_oferentow` TEXT NULL DEFAULT NULL, Strona 20

`krotka_charakterystyka` TEXT NOT NULL, `opis_potrzeb` TEXT NOT NULL, `opis_grup` TEXT NOT NULL, `uzasadnienie_potrzeby` TEXT NULL DEFAULT NULL, `informacja` TEXT NULL DEFAULT NULL, `zakladane_cele` TEXT NOT NULL, `miejsce_realizacji` VARCHAR(128) NOT NULL, `opis_dzialan` TEXT NOT NULL, `zakladane_rezultaty` TEXT NOT NULL, INDEX `FK_oferty_dane_oferty` (`id_oferty` ASC), CONSTRAINT `FK_oferty_dane_oferty` FOREIGN KEY (`id_oferty` ) REFERENCES `engo`.`oferty` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION) Tabela - Oferty_oferenci Tabela zawiera oferentów przypisanych do tworzonej oferty. W momencie tworzenia nowego wniosku ofertowego dane są kopiowane do tej tabeli z tabeli oferenci. -- Table `engo`.`oferty_oferenci` CREATE TABLE IF NOT EXISTS `engo`.`oferty_oferenci` ( `id_oferty` INT(11) NOT NULL DEFAULT '0', `main` TINYINT(1) NOT NULL DEFAULT '0', `nazwa` VARCHAR(64) NOT NULL, Strona 21

Kalkulator outsourcingu: Generator e-n-go `forma_prawna` ENUM('stowarzyszenie','fundacja','koscielna_osoba','koscielna_jednostka','spoldzielnia','inna') NOT NULL, `forma_prawna_inna` VARCHAR(45) NULL DEFAULT NULL, `krs` VARCHAR(10) NOT NULL, `data_wpisu` DATE NOT NULL, `nip` VARCHAR(13) NOT NULL, `regon` VARCHAR(10) NOT NULL, `miejscowosc` VARCHAR(32) NOT NULL, `ulica` VARCHAR(32) NOT NULL, `dzielnica` VARCHAR(32) NULL DEFAULT NULL, `gmina` VARCHAR(32) NOT NULL, `powiat` VARCHAR(32) NULL DEFAULT NULL, `wojewodztwo` VARCHAR(32) NOT NULL, `kod_pocztowy` VARCHAR(6) NOT NULL, `poczta` VARCHAR(32) NOT NULL, `telefon` VARCHAR(10) NULL DEFAULT NULL, `fax` VARCHAR(10) NULL DEFAULT NULL, `email` VARCHAR(45) NULL DEFAULT NULL, `www` VARCHAR(45) NULL DEFAULT NULL, `bank_konto` VARCHAR(32) NOT NULL, `bank_nazwa` VARCHAR(64) NOT NULL, `jednostka_organizacyjna` VARCHAR(90) NOT NULL, `osoba_upowazniona` VARCHAR(64) NOT NULL, `dzialalnosc_nieodplatna` TEXT NOT NULL, `dzialalnosc_odplatna` TEXT NOT NULL, `numer_wpisu` VARCHAR(20) NULL DEFAULT NULL, `przedmiot_dzialalnosci` TEXT NULL DEFAULT NULL, `created_at` DATETIME NULL DEFAULT NULL, `updated_at` DATETIME NULL DEFAULT NULL, INDEX `FK_oferty_oferenci_oferty` (`id_oferty` ASC), Strona 22

CONSTRAINT `FK_oferty_oferenci_oferty` FOREIGN KEY (`id_oferty` ) REFERENCES `engo`.`oferty` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION) Tabela - Oferty_zakresy_realizacji Tabela zawiera działania definiowane w wniosku ofertowym w punkcie III.8. Działania te są automatycznie przepisywane do harmonogramu z możliwością edycji jak również wykorzystane w kosztorysie. -- Table `engo`.`oferty_zakresy_realizacji` CREATE TABLE IF NOT EXISTS `engo`.`oferty_zakresy_realizacji` ( `id_oferty` INT(11) NOT NULL DEFAULT '0', `nazwa` VARCHAR(64) NULL DEFAULT NULL, `opis` TEXT NULL DEFAULT NULL, `typ` TINYINT(1) NOT NULL DEFAULT '0', INDEX `FK_oferty_dane_dzialania_oferty` (`id_oferty` ASC), CONSTRAINT `FK_oferty_dane_dzialania_oferty` FOREIGN KEY (`id_oferty` ) REFERENCES `engo`.`oferty` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION) Strona 23

Kalkulator outsourcingu: Generator e-n-go Tabela - Oferty_harmonogram Tabela zawiera harmonogram wniosku ofertowego odnoszący się to tabeli oferty_zakresy_realizacji. -- Table `engo`.`oferty_harmonogram` CREATE TABLE IF NOT EXISTS `engo`.`oferty_harmonogram` ( `id_oferty` INT(11) NULL DEFAULT NULL, `id_oferty_oferenci` INT(11) NULL DEFAULT NULL, `kolejnosc` TINYINT(4) NULL DEFAULT NULL, `dzialania` TEXT NOT NULL, `data_start` DATE NOT NULL DEFAULT '2013-01-01', `data_stop` DATE NOT NULL DEFAULT '2013-01-02', `id_oferty_zakresy_realizacji` INT(11) NULL DEFAULT NULL, `skala_dzialan` VARCHAR(32) NOT NULL, INDEX `fk_oferty_harmonogram_oferty1_idx` (`id_oferty` ASC), INDEX `fk_oferty_harmonogram_oferty_oferenci1_idx` (`id_oferty_oferenci` ASC), INDEX `oferty_harmonogram_id_oferty_zakresy_realizacji_foreign` (`id_oferty_zakresy_realizacji` ASC), CONSTRAINT `fk_oferty_harmonogram_oferty1` FOREIGN KEY (`id_oferty` ) REFERENCES `engo`.`oferty` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `fk_oferty_harmonogram_oferty_oferenci1` FOREIGN KEY (`id_oferty_oferenci` ) REFERENCES `engo`.`oferty_oferenci` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `oferty_harmonogram_id_oferty_zakresy_realizacji_foreign` Strona 24

FOREIGN KEY (`id_oferty_zakresy_realizacji` ) REFERENCES `engo`.`oferty_zakresy_realizacji` (`id` ) ON DELETE CASCADE) Tabela - Oferty_historia Tabela zawiera historię wniosku ofertowego. Rejestrowane są tutaj wszystkie akcje której podejmowane są odnośnie wniosku ofertowego, począwszy od rozpoczęcia wypełniania wniosku. Dzięki temu możemy prześledzić co działo się na przestrzeni czasu z danym wnioskiem. -- Table `engo`.`oferty_historia` CREATE TABLE IF NOT EXISTS `engo`.`oferty_historia` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `oferty_id` INT(11) NOT NULL, `user_id` INT(10) UNSIGNED NOT NULL, `nazwa` VARCHAR(64) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL, `checksum` VARCHAR(32) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL, `type` SMALLINT(6) NULL DEFAULT NULL, `created_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', `updated_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', INDEX `fk_oferty_historia_1` (`oferty_id` ASC), CONSTRAINT `fk_oferty_historia_1` FOREIGN KEY (`oferty_id` ) REFERENCES `engo`.`oferty` (`id` ) ON DELETE NO ACTION ON UPDATE NO ACTION) DEFAULT CHARACTER SET = utf8 Strona 25

Kalkulator outsourcingu: Generator e-n-go COLLATE = utf8_unicode_ci; Tabela - Oferty_inne_informacje Tabela zawiera dane zawarte w wniosku ofertowym w zakładce 6. Inne informacje -- Table `engo`.`oferty_inne_informacje` CREATE TABLE IF NOT EXISTS `engo`.`oferty_inne_informacje` ( `id_oferty` INT(11) NOT NULL DEFAULT '0', `zasoby_kadrowe` TEXT NULL DEFAULT NULL, `zasoby_rzeczowe` TEXT NULL DEFAULT NULL, `doswiadczenie` TEXT NULL DEFAULT NULL, `informacja` TEXT NULL DEFAULT NULL, `uwagi` TEXT NULL DEFAULT NULL, INDEX `FK_oferty_inne_informacje_oferty` (`id_oferty` ASC), CONSTRAINT `FK_oferty_inne_informacje_oferty` FOREIGN KEY (`id_oferty` ) REFERENCES `engo`.`oferty` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION) Strona 26

Tabela - Oferty_inne_zrodla_finansowe Tabela zawiera zdefiniowane inne źródła finansowe zawarte we wniosku ofertowym. -- Table `engo`.`oferty_inne_zrodla_finansowe` CREATE TABLE IF NOT EXISTS `engo`.`oferty_inne_zrodla_finansowe` ( `id_oferty` INT(11) NOT NULL DEFAULT '0', `nazwa_organu` VARCHAR(100) NOT NULL, `kwota` DECIMAL(8,2) NOT NULL, `informacja_rozpatrzenia` ENUM('tak','nie') NOT NULL, `termin` DATE NOT NULL DEFAULT '2000-01-01', INDEX `FK_oferty_inne_zrodla_finansowe_oferty` (`id_oferty` ASC), CONSTRAINT `FK_oferty_inne_zrodla_finansowe_oferty` FOREIGN KEY (`id_oferty` ) REFERENCES `engo`.`oferty` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION) Tabela - Oferty_kosztorysy Tabela zawiera dane zawarte w kosztorysie we wniosku ofertowym. -- Table `engo`.`oferty_kosztorysy` CREATE TABLE IF NOT EXISTS `engo`.`oferty_kosztorysy` ( Strona 27

Kalkulator outsourcingu: Generator e-n-go `id_oferty` INT(11) NOT NULL, `id_oferty_oferenci` INT(11) NOT NULL, `id_oferty_zakresy_realizacji` INT(11) NULL DEFAULT NULL, `nazwa` VARCHAR(64) NULL DEFAULT NULL, `ilosc_jednostek` DECIMAL(8,2) NOT NULL, `koszt_jednostkowy` DECIMAL(8,2) NOT NULL, `rodzaj_miary` SMALLINT(6) NULL DEFAULT NULL, `koszt_calkowity` DECIMAL(8,2) NOT NULL, `dotacja_wnioskowa` DECIMAL(8,2) NOT NULL, `srodki_wlasne` DECIMAL(8,2) NOT NULL, `koszt_pokrycia` DECIMAL(8,2) NOT NULL, `rodzaj_kosztow` ENUM('merytoryczne','obslugi','inne') NOT NULL, `koszt_osobowy` TINYINT(1) NOT NULL DEFAULT '0', INDEX `fk_oferts_estimate_oferts1_idx` (`id_oferty` ASC), INDEX `fk_oferts_estimate_bidders1_idx` (`id_oferty_oferenci` ASC), CONSTRAINT `fk_oferts_estimate_bidders1` FOREIGN KEY (`id_oferty_oferenci` ) REFERENCES `engo`.`oferty_oferenci` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `fk_oferts_estimate_oferts_1` FOREIGN KEY (`id_oferty` ) REFERENCES `engo`.`oferty` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION) Strona 28

Tabela - Oferty_oferenci_reprezentanci Tabela zawiera zdefiniowanych reprezentantów dla danego oferenta występującego w ofercie wniosku ofertowego. -- Table `engo`.`oferty_oferenci_reprezentanci` CREATE TABLE IF NOT EXISTS `engo`.`oferty_oferenci_reprezentanci` ( `id_oferty_oferenci` INT(11) NOT NULL, `nazwa_reprezentanta` VARCHAR(64) NOT NULL, `telefon` VARCHAR(20) NULL DEFAULT NULL, `stanowisko` VARCHAR(64) NULL DEFAULT NULL, INDEX `fk_bidder_representant_bidder_idx` (`id_oferty_oferenci` ASC), CONSTRAINT `fk_bidder_representant_bidder` FOREIGN KEY (`id_oferty_oferenci` ) REFERENCES `engo`.`oferty_oferenci` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION) Tabela - Oferty_oswiadczenia Tabela zawiera oświadczenia zawarte na końcu wniosku ofertowego. -- Table `engo`.`oferty_oswiadczenia` CREATE TABLE IF NOT EXISTS `engo`.`oferty_oswiadczenia` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `id_oferty` INT(11) NOT NULL, `zakres_dzialalnosci` TINYINT(1) NOT NULL, Strona 29

Kalkulator outsourcingu: Generator e-n-go `pobieranie_oplat` TINYINT(1) NOT NULL, `data_zwiazania` DATE NOT NULL, `przetwarzanie_danych` TINYINT(1) NOT NULL, `zalega_oplacenie` TINYINT(1) NOT NULL, `zgodny_krs` TINYINT(1) NOT NULL, `wszystko_prawda` TINYINT(1) NOT NULL, INDEX `oferty_oswiadczenia_id_oferty_foreign` (`id_oferty` ASC), CONSTRAINT `oferty_oswiadczenia_id_oferty_foreign` FOREIGN KEY (`id_oferty` ) REFERENCES `engo`.`oferty` (`id` ) ON DELETE CASCADE) DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci; Tabela - Oferty_zrodla_finansowe Tabela zawiera dane zawarte w zakładce 5. Źródła finansowe we wniosku ofertowym. -- Table `engo`.`oferty_zrodla_finansowe` CREATE TABLE IF NOT EXISTS `engo`.`oferty_zrodla_finansowe` ( `id_oferty` INT(11) NOT NULL DEFAULT '0', `wnioskowana_kwota` DECIMAL(8,2) NULL DEFAULT '0.00', `srodki_finansowe_wlasne` DECIMAL(8,2) NULL DEFAULT '0.00', `srodki_finansowe_ogolne` DECIMAL(8,2) NULL DEFAULT '0.00', `wplaty_oplaty` DECIMAL(8,2) NULL DEFAULT '0.00', `srodki_finansowe_publiczne` DECIMAL(8,2) NULL DEFAULT '0.00', `pozostale` DECIMAL(8,2) NULL DEFAULT '0.00', `wklad_osobowy` DECIMAL(8,2) NOT NULL DEFAULT '0.00', Strona 30

`ogolem` DECIMAL(8,2) NULL DEFAULT '0.00', INDEX `FK_oferty_zrodla_finansowe_oferty` (`id_oferty` ASC), CONSTRAINT `FK_oferty_zrodla_finansowe_oferty` FOREIGN KEY (`id_oferty` ) REFERENCES `engo`.`oferty` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION) AUTO_INCREMENT = 51 Tabela - Pomoc W tabeli pomoc są zdefiniowane teksty pomocy wyskakujące po wybraniu niebieskiego pytajnika przy danym polu. -- Table `engo`.`pomoc` CREATE TABLE IF NOT EXISTS `engo`.`pomoc` ( `typ` INT(11) NULL DEFAULT '2', `nazwa_pola` VARCHAR(32) NULL DEFAULT '0', `tresc` TEXT NULL DEFAULT NULL, PRIMARY KEY (`id`) ) Strona 31

Kalkulator outsourcingu: Generator e-n-go Tabela - Sprawozdania W tabeli są zapisywane nagłówki sprawozdań do realizowanych zadań w przypadku gdy nasz wniosek zostanie zaakceptowany i przystępujemy do raportowania realizacji zadania. -- Table `engo`.`sprawozdania` CREATE TABLE IF NOT EXISTS `engo`.`sprawozdania` ( `oferty_id` INT(11) NOT NULL, `data_zlozenia` DATETIME NOT NULL, `typ` ENUM('czesciowe','koncowe') NOT NULL, `status` TINYINT(1) NOT NULL DEFAULT '0' COMMENT '0 roboczy 1 zlozony', `created_at` DATETIME NOT NULL, `updated_at` DATETIME NOT NULL, INDEX `FK_sprawozdania_oferty` (`oferty_id` ASC), CONSTRAINT `FK_sprawozdania_oferty` FOREIGN KEY (`oferty_id` ) REFERENCES `engo`.`oferty` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION) Strona 32

Tabela - Sprawozdania_faktury Tabela zawiera dokumenty zawarte w sprawozdaniu realizacji zadania. -- Table `engo`.`sprawozdania_faktury` CREATE TABLE IF NOT EXISTS `engo`.`sprawozdania_faktury` ( `sprawozdania_id` INT(11) NOT NULL, `numer_dokumentu` VARCHAR(16) NOT NULL, `numer_pozycji` VARCHAR(16) NOT NULL, `data_wystawienia` DATE NOT NULL DEFAULT '2013-01-01', `nazwa_kosztu` VARCHAR(50) NOT NULL, `kwota` DECIMAL(8,2) NOT NULL, `dotacja` DECIMAL(8,2) NOT NULL, `finanse_wlasne` DECIMAL(8,2) NOT NULL, `data_zaplaty` DATE NOT NULL DEFAULT '2013-01-01', INDEX `FK_sprawozdania_faktury_sprawozdania` (`sprawozdania_id` ASC), CONSTRAINT `FK_sprawozdania_faktury_sprawozdania` FOREIGN KEY (`sprawozdania_id` ) REFERENCES `engo`.`sprawozdania` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION) Strona 33

Kalkulator outsourcingu: Generator e-n-go Tabela - Sprawozdania_finanse Tabela zawiera dane finansowe potrzebne do realizacji sprawozdania. -- Table `engo`.`sprawozdania_finanse` CREATE TABLE IF NOT EXISTS `engo`.`sprawozdania_finanse` ( `sprawozdania_id` INT(11) NOT NULL DEFAULT '0', `wnioskowana_kwota` DECIMAL(8,2) NULL DEFAULT '0.00', `srodki_finansowe_wlasne` DECIMAL(8,2) NULL DEFAULT '0.00', `srodki_finansowe_ogolne` DECIMAL(8,2) NULL DEFAULT '0.00', `wplaty_oplaty` DECIMAL(8,2) NULL DEFAULT '0.00', `srodki_finansowe_publiczne` DECIMAL(8,2) NULL DEFAULT '0.00', `pozostale` DECIMAL(8,2) NULL DEFAULT '0.00', `wklad_osobowy` DECIMAL(8,2) NOT NULL DEFAULT '0.00', `ogolem` DECIMAL(8,2) NULL DEFAULT '0.00', `wnioskowana_kwota_calosc` DECIMAL(8,2) NOT NULL, `srodki_finansowe_wlasne_calosc` DECIMAL(8,2) NOT NULL, `srodki_finansowe_ogolne_calosc` DECIMAL(8,2) NOT NULL, `wplaty_oplaty_calosc` DECIMAL(8,2) NOT NULL, `srodki_finansowe_publiczne_calosc` DECIMAL(8,2) NOT NULL, `pozostale_calosc` DECIMAL(8,2) NOT NULL, `wklad_osobowy_calosc` DECIMAL(8,2) NOT NULL, `ogolem_calosc` DECIMAL(8,2) NOT NULL, INDEX `FK_sprawozdania_finanse_sprawozdania` (`sprawozdania_id` ASC), CONSTRAINT `FK_sprawozdania_finanse_sprawozdania` FOREIGN KEY (`sprawozdania_id` ) REFERENCES `engo`.`sprawozdania` (`id` ) ON DELETE CASCADE Strona 34

ON UPDATE NO ACTION) Tabela - Sprawozdania_inne Tabela zawiera inne dodatkowe pola występujące w sprawozdaniu realizacji zadania. -- Table `engo`.`sprawozdania_inne` CREATE TABLE IF NOT EXISTS `engo`.`sprawozdania_inne` ( `sprawozdania_id` INT(11) NOT NULL, `uwagi_finanse` TEXT NOT NULL, `informacja_przychody` TEXT NOT NULL, `dodatkowe_informacje` TEXT NOT NULL, INDEX `FK_sprawozdania_inne_sprawozdania` (`sprawozdania_id` ASC), CONSTRAINT `FK_sprawozdania_inne_sprawozdania` FOREIGN KEY (`sprawozdania_id` ) REFERENCES `engo`.`sprawozdania` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION) Strona 35

Kalkulator outsourcingu: Generator e-n-go Tabela - Sprawozdania_koszty Tabela zawiera koszty występujące w sprawozdaniach. -- Table `engo`.`sprawozdania_koszty` CREATE TABLE IF NOT EXISTS `engo`.`sprawozdania_koszty` ( `sprawozdania_id` INT(11) NOT NULL, `oferty_kosztorysy_id` INT(11) NOT NULL, `koszt_calkowity` DECIMAL(8,2) NOT NULL DEFAULT '0.00', `dotacja` DECIMAL(8,2) NOT NULL DEFAULT '0.00', `srodki_wlasne` DECIMAL(8,2) NOT NULL DEFAULT '0.00', `wklad_osobowy` DECIMAL(8,2) NOT NULL DEFAULT '0.00', `typ` ENUM('merytoryczne','obslugi','inne') NULL DEFAULT NULL, INDEX `FK_sprawozdania_koszty_sprawozdania` (`sprawozdania_id` ASC), INDEX `FK_sprawozdania_koszty_oferty_kosztorysy` (`oferty_kosztorysy_id` ASC), CONSTRAINT `FK_sprawozdania_koszty_oferty_kosztorysy` FOREIGN KEY (`oferty_kosztorysy_id` ) REFERENCES `engo`.`oferty_kosztorysy` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `FK_sprawozdania_koszty_sprawozdania` FOREIGN KEY (`sprawozdania_id` ) REFERENCES `engo`.`sprawozdania` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION) Strona 36

Tabela - Sprawozdania_merytoryczne Tabela zawiera dodatkowe pola wypełnianie w czasie raportowania realizacji zadania. -- Table `engo`.`sprawozdania_merytoryczne` CREATE TABLE IF NOT EXISTS `engo`.`sprawozdania_merytoryczne` ( `sprawozdania_id` INT(11) NOT NULL, `informacja` TEXT NOT NULL, `wplyw_dofinansowania` TEXT NOT NULL, `opis_rezultatow` TEXT NOT NULL, `skala_dzialan` TEXT NOT NULL, INDEX `FK_sprawozdania_merytoryczne_sprawozdania` (`sprawozdania_id` ASC), CONSTRAINT `FK_sprawozdania_merytoryczne_sprawozdania` FOREIGN KEY (`sprawozdania_id` ) REFERENCES `engo`.`sprawozdania` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION) Tabela - Sprawozdania_merytoryczne_dzialania Tabela zawiera dodatkowe pola wypełnianie w czasie raportowania realizacji zadania. -- Table `engo`.`sprawozdania_merytoryczne_dzialania` CREATE TABLE IF NOT EXISTS `engo`.`sprawozdania_merytoryczne_dzialania` ( `sprawozdania_id` INT(11) NOT NULL, `oferty_oferenci_id` INT(11) NOT NULL, Strona 37

Kalkulator outsourcingu: Generator e-n-go `dzialania` TEXT NOT NULL, `termin` DATE NOT NULL DEFAULT '2013-01-01', INDEX `FK_sprawozdania_merytoryczne_dzialania_sprawozdania` (`sprawozdania_id` ASC), INDEX `FK_sprawozdania_merytoryczne_dzialania_oferty_oferenci` (`oferty_oferenci_id` ASC), CONSTRAINT `FK_sprawozdania_merytoryczne_dzialania_oferty_oferenci` FOREIGN KEY (`oferty_oferenci_id` ) REFERENCES `engo`.`oferty_oferenci` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `FK_sprawozdania_merytoryczne_dzialania_sprawozdania` FOREIGN KEY (`sprawozdania_id` ) REFERENCES `engo`.`sprawozdania` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION) Tabela - Throttle Tabela zawiera nieudane próby logowania użytkowników w systemie e-n-go oraz umożliwia tymczasowe blokowanie konta użytkowników. -- Table `engo`.`throttle` CREATE TABLE IF NOT EXISTS `engo`.`throttle` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `user_id` INT(10) UNSIGNED NOT NULL, `ip_address` VARCHAR(255) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NULL DEFAULT NULL, `attempts` INT(11) NOT NULL DEFAULT '0', `suspended` TINYINT(1) NOT NULL DEFAULT '0', Strona 38

`banned` TINYINT(1) NOT NULL DEFAULT '0', `last_attempt_at` TIMESTAMP NULL DEFAULT NULL, `suspended_at` TIMESTAMP NULL DEFAULT NULL, `banned_at` TIMESTAMP NULL DEFAULT NULL, INDEX `fk_throttle_1` (`user_id` ASC), CONSTRAINT `fk_throttle_1` FOREIGN KEY (`user_id` ) REFERENCES `engo`.`users` (`id` ) ON DELETE NO ACTION ON UPDATE NO ACTION) DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci; Tabela - Users_groups Definiuje powiązania użytkowników do grup użytkowników -- Table `engo`.`users_groups` CREATE TABLE IF NOT EXISTS `engo`.`users_groups` ( `user_id` INT(10) UNSIGNED NOT NULL, `group_id` INT(10) UNSIGNED NOT NULL, PRIMARY KEY (`user_id`, `group_id`), INDEX `fk_users_groups_1` (`user_id` ASC), INDEX `fk_users_groups_2` (`group_id` ASC), CONSTRAINT `fk_users_groups_1` FOREIGN KEY (`user_id` ) REFERENCES `engo`.`users` (`id` ) ON DELETE NO ACTION ON UPDATE NO ACTION, Strona 39

Kalkulator outsourcingu: Generator e-n-go CONSTRAINT `fk_users_groups_2` FOREIGN KEY (`group_id` ) REFERENCES `engo`.`groups` (`id` ) ON DELETE NO ACTION ON UPDATE NO ACTION) DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci; Tabela - Wskazniki Tabela zawiera definicję nazw wskaźników potrzebnych do obliczania społeczno - ekonomicznych wartości dodanych zadania publicznego. -- Table `engo`.`wskazniki` CREATE TABLE IF NOT EXISTS `engo`.`wskazniki` ( `nazwa` VARCHAR(255) NOT NULL DEFAULT '0', `nazwa_klasy` VARCHAR(4) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) Tabela - Wskazniki_oferty Tabela zawiera obliczone wartości wskaźników dla poszczególnych ofert utworzonych w systemie. -- Table `engo`.`wskazniki_oferty` CREATE TABLE IF NOT EXISTS `engo`.`wskazniki_oferty` ( `id_oferty` INT(11) NULL DEFAULT NULL, Strona 40

`id_wskaznika` INT(11) NULL DEFAULT NULL, `wartosc` DECIMAL(10,2) NOT NULL, INDEX `FK oferty1` (`id_oferty` ASC), INDEX `FK wskazniki1` (`id_wskaznika` ASC), CONSTRAINT `FK oferty1` FOREIGN KEY (`id_oferty` ) REFERENCES `engo`.`oferty` (`id` ) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `FK wskazniki1` FOREIGN KEY (`id_wskaznika` ) REFERENCES `engo`.`wskazniki` (`id` ) ON DELETE NO ACTION ON UPDATE NO ACTION) Tabela - Wskazniki_zadania_zakres Tabela zawiera przypisania wskaźników do poszczególnych zakresów zadań zdefiniowanych w tabeli zadania_zakres. Każde zakres zadań zdefiniowany w ustawie ma przypisany inny zestaw wskaźników potrzebnych do obliczania korzyści z realizacji zadania publicznego. -- Table `engo`.`wskazniki_zadania_zakres` CREATE TABLE IF NOT EXISTS `engo`.`wskazniki_zadania_zakres` ( `id_zakres` INT(11) NOT NULL, `id_wskaznik` INT(11) NOT NULL, PRIMARY KEY (`id_zakres`, `id_wskaznik`), INDEX `FK wskazniki` (`id_wskaznik` ASC), Strona 41

Kalkulator outsourcingu: Generator e-n-go CONSTRAINT `FK wskazniki` FOREIGN KEY (`id_wskaznik` ) REFERENCES `engo`.`wskazniki` (`id` ), CONSTRAINT `FK zadania_zakres` FOREIGN KEY (`id_zakres` ) REFERENCES `engo`.`zadania_zakres` (`id` )) Tabela - Zadania_linki Zawiera listę adresów URL przypisanych do ogłoszonego zadania, które mogą być odnośnikami do innych ustaw, dokumentów. -- Table `engo`.`zadania_linki` CREATE TABLE IF NOT EXISTS `engo`.`zadania_linki` ( `id_zadania` INT(11) NULL DEFAULT NULL, `url` VARCHAR(255) NULL DEFAULT NULL, `tytul` VARCHAR(128) NULL DEFAULT NULL, INDEX `fk_zadania_linki_1` (`id_zadania` ASC), CONSTRAINT `fk_zadania_linki_1` FOREIGN KEY (`id_zadania` ) REFERENCES `engo`.`zadania` (`id` ) ON DELETE NO ACTION ON UPDATE NO ACTION) Strona 42

Tabela - Zalaczniki Tabela zawiera listę załączników dołączonych do wniosku ofertowego, jak skany dokumentów, potwierdzenia itp. Pliki te są fizycznie przetrzymywane w katalogu poza serwerem WWW. -- Table `engo`.`zalaczniki` CREATE TABLE IF NOT EXISTS `engo`.`zalaczniki` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `id_zadania` INT(11) NULL DEFAULT NULL, `id_oferty` INT(11) NULL DEFAULT NULL, `id_uzytkownika` INT(10) UNSIGNED NOT NULL, `nazwa` VARCHAR(64) CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci' NOT NULL, `typ` SMALLINT(6) NOT NULL, INDEX `zalaczniki_id_zadania_foreign` (`id_zadania` ASC), INDEX `zalaczniki_id_oferty_foreign` (`id_oferty` ASC), INDEX `zalaczniki_id_uzytkownika_foreign` (`id_uzytkownika` ASC), CONSTRAINT `zalaczniki_id_oferty_foreign` FOREIGN KEY (`id_oferty` ) REFERENCES `engo`.`oferty` (`id` ) ON DELETE SET NULL, CONSTRAINT `zalaczniki_id_uzytkownika_foreign` FOREIGN KEY (`id_uzytkownika` ) REFERENCES `engo`.`users` (`id` ) ON DELETE NO ACTION, CONSTRAINT `zalaczniki_id_zadania_foreign` FOREIGN KEY (`id_zadania` ) REFERENCES `engo`.`zadania` (`id` ) ON DELETE SET NULL) DEFAULT CHARACTER SET = utf8 Strona 43

Kalkulator outsourcingu: Generator e-n-go COLLATE = utf8_unicode_ci; Strona 44

Lista zdefiniowanych klas podstawowych Poniżej wymieniono podstawowe klasy wykorzystywane w systemie. AuthController Klasa odpowiada za rejestrowanie nowych użytkowników w systemie, aktywowanie konta, logowanie, przypomnienie hasła. AdminController Klasa odpowiada za odczytywanie uprawnień w panelu JST. Przygotowane pod rozbudowę o dalsze funkcjonalności w systemie umożliwiające nadawanie uprawnień. W chwili obecnej wszyscy użytkownicy roli JST mają jednakowe uprawnienia. AuthorizedController Klasa jest rozszerzeniem klasy bazowej, sprawdza dodatkowo czy użytkownik jest zalogowany w systemie. Klasa bazowa dla wszystkich klas wymagających od użytkownika zalogowania. BaseController Klasa bazowa, zawiera filtr CSRF oraz definiuje szablon strony. CalculatorController Klasa odpowiedzialna za obliczanie wskaźników dla poszczególnych ofert. Dynamicznie ładuje wskaźniki dla danego zakresu z którego pochodzi zadanie, sprawdza czy do obliczenia wskaźnika posiadamy wszystkie potrzebne dane i zwraca wartość wskaźnika. ClientsController Klasa odpowiedzialna za tworzenie nowych oferentów w ramach konta użytkownika, edycje tych oferentów, kasowanie, sprawdza również poprawność danych. Strona 45

Kalkulator outsourcingu: Generator e-n-go HelpController Klasa odpowiedzialna za zwracanie tzw. pomocy pojawiającej się w wniosku ofertowym po kliknięciu niebieskiej ikonki i. EditionsController Klasa odpowiedzialna za definiowanie nowych edycji konkursowych, zarządzanie edycjami konkursowymi oraz ich kasowanie OffertController Klasa odpowiedzialna za wniosek ofertowy. Zwraca poszczególne formularze, obsługuje ich edycje. PdfController Klasa odpowiedzialna za generowanie wszelkich wydruków PDF, jak wniosek ofertowy, potwierdzenia ofert, zestawienia ReportController Klasa odpowiedzialna za generowanie formularzy raportu realizacji zadania ofertowego, jak również jego przetwarzanie oraz walidację. TaskController Klasa odpowiedzialna za definiowanie nowych zadań w ramach konkursu ofert, ich edycję, kasowanie. PointersController Klasa bazowa służąca do definiowania wskaźników wykorzystywanych przy obliczaniu korzyści za pomocą kalkulatora e-n-go UnitsController Klasa odpowiedzialna za definiowanie i zarządzanie jednostkami miar w systemie. Strona 46

UsersController Klasa odpowiedzialna za zarządzanie kontami użytkowników w systemie, dodawanie użytkowników, kasowanie, edycja. Strona 47