Product Vision Statement » Historie » Verze 62
Eliška Mourycová, 2021-05-11 19:45
1 | 31 | Alex Konig | h1. Product Vision Statement |
---|---|---|---|
2 | 1 | Roman Kalivoda | |
3 | h2. Project Goals |
||
4 | |||
5 | 11 | Zuzana Káčereková | Creating an application that will based on weather input, predict the attendance in class. User will be able to input their own weather information or choose a prediction based on current weather information or prediction for future days. |
6 | 5 | Roman Kalivoda | |
7 | 10 | Alex Konig | h3. Customers and benefits |
8 | |||
9 | 11 | Zuzana Káčereková | Can be useful for teachers when planning for activities that require higher attendance. For example, if the teacher wants to give their students a pop quiz about their current knowledge from lectures, to get a better idea of the class's general understanding it would be good to have as many answers as possible. This app would enable to predict the attendance for a class, and therefore to decide if it is worth it to plan a 30min window in the lecture for a quiz or to rather plan something else. |
10 | 6 | Alex Konig | |
11 | 11 | Zuzana Káčereková | It could also be useful for students to decide how early to get to class to get the best seats. Many classrooms only have a limited number of plugs, and since a lot of students write notes on their laptops, the seats near these plugs are highly valuable. This app would enable the students to look how at how populated the building will be and decide if coming early to the lecture will be necessary to get those good seats. |
12 | 6 | Alex Konig | |
13 | 12 | Zuzana Káčereková | h3. User input |
14 | 1 | Roman Kalivoda | |
15 | 35 | Alex Konig | * Date (or system date) - dd:mm:yyyy + Time - hh |
16 | ** Start and end dateTime for prediction of rush level over a timespan, or just start dateTime for prediction at one specific time |
||
17 | * Weather |
||
18 | ** automatic prediction from official weather server prediction |
||
19 | ** possibility to manually input custom values - temperature, wind, rain probability, weather conditions (sunny/cloudy/overcast/dark) |
||
20 | * classroom prefix (-> will be interpreted as building the classroom is in) |
||
21 | 1 | Roman Kalivoda | |
22 | 6 | Alex Konig | h3. Output |
23 | 8 | Alex Konig | |
24 | 36 | Alex Konig | * Rush level (very calm, calm, average, busy, very busy) |
25 | ** Visualization as a "heatmap" showing rush across the campus |
||
26 | ** If user put end date an animation of changes in rush level |
||
27 | 25 | Alex Konig | |
28 | 44 | Alex Konig | Prediction is made on the level of buildings, potentially groups of buildings in the city centre, as divided in [[Data sources]]. Rush level is relative to the building it is related to. 50% on FAV does not have to mean the same predicted value of activity as 50% on FST, it depends on usual amount of activity read from data for each specific building |
29 | 37 | Alex Konig | |
30 | 1 | Roman Kalivoda | h3. Happy Day use-case |
31 | 25 | Alex Konig | |
32 | 45 | Alex Konig | The user will specify a date, time and classroom (e.g. UC, 23.6.2021 7am) for which they wish to get the prediction of attendance. It will be possible to choose to have the weather forecast data for the given day downloaded automatically or user has to option to input custom weather manually. The output of the app will be a text field and a heatmap saying the rush level the model predicts (e.g. very high and a brightly lit up building). |
33 | 25 | Alex Konig | |
34 | 14 | Zuzana Káčereková | h3. Key factors to judge application quality |
35 | 1 | Roman Kalivoda | |
36 | 14 | Zuzana Káčereková | * Application response time |
37 | 32 | Alex Konig | * UI design appeals to the customer |
38 | 14 | Zuzana Káčereková | * Maintainability (as a measure of effort required to update the model with new data) |
39 | 10 | Alex Konig | |
40 | 39 | Alex Konig | Prediction quality is not guaranteed at this stage as data quality is out of our control and hugely impacts the output. Quality should also improve over time as more data is collected by ZČU. |
41 | 1 | Roman Kalivoda | |
42 | 52 | Alex Konig | h3. Product features |
43 | 17 | Zuzana Káčereková | |
44 | 49 | Alex Konig | Bold parts are part of Minimum viable product. |
45 | |||
46 | 1 | Roman Kalivoda | h4. Server (backend) part |
47 | 17 | Zuzana Káčereková | |
48 | 1 | Roman Kalivoda | There will be a server application which: |
49 | 58 | Alex Konig | |
50 | 46 | Alex Konig | * *Runs on linux* |
51 | 58 | Alex Konig | ** Test on openNebula |
52 | 61 | Eliška Mourycová | ** OS: Debian GNU/Linux 10, version 10.9 |
53 | 62 | Eliška Mourycová | ** HW requiremnts: TBD (default settings when creating VM on OpenNebula seem to suffice) |
54 | 58 | Alex Konig | |
55 | 46 | Alex Konig | * *Will run predictions based on client app requests and send the response once it is ready.* |
56 | 58 | Alex Konig | |
57 | 1 | Roman Kalivoda | * Software designed to support smooth model transition |
58 | 46 | Alex Konig | ** *Modular application*, easy to swap parts (for ex. spap for different data parser or data loader or possibly in the future for different data) |
59 | 58 | Alex Konig | |
60 | 46 | Alex Konig | * Configuration file read upon launch |
61 | ** *Modifies local data folder path* |
||
62 | ** Modifies link to online directory open data |
||
63 | 58 | Alex Konig | |
64 | * *Works with csv format of open data (as specified in [[Data sources]])* |
||
65 | ** *Can interpret as whole day* |
||
66 | ** *Can interpret as hourly intervals* |
||
67 | * *Works with json format of weather prediction (as specified in [[Data sources]])* |
||
68 | |||
69 | * *Communication* |
||
70 | ** *Sends xml files (recieve, send, parse)* |
||
71 | ** *HTTPS server implementation* |
||
72 | ** *Implementing protocol* |
||
73 | |||
74 | 51 | Alex Konig | * Admin requests |
75 | 46 | Alex Konig | ** Capable of checking for new data in online files directory |
76 | ** *Capable of updating data at admin request* - download new files from online directory |
||
77 | 58 | Alex Konig | *** Download for certain timespan |
78 | *** *Download for specific month* |
||
79 | |||
80 | 1 | Roman Kalivoda | ** *Capable of retraining prediction model on admin request* |
81 | 58 | Alex Konig | *** Retraining for data from specific timespan -> filter out other files |
82 | *** *Can divide day into multiple intervals for which it will predict, or predict for day only* |
||
83 | *** *Capable of rollback* |
||
84 | |||
85 | 1 | Roman Kalivoda | * Capable of fullfiling requests and send answers to more than one client applications. |
86 | 58 | Alex Konig | |
87 | 59 | Alex Konig | * *Testing* |
88 | ** *Bugfixes* |
||
89 | 58 | Alex Konig | |
90 | 1 | Roman Kalivoda | |
91 | We decided that the backend will be developed in C# and .NET platform. |
||
92 | |||
93 | h4. Frontend app |
||
94 | 34 | Alex Konig | |
95 | 5 | Roman Kalivoda | * Able to specify input parameters |
96 | 46 | Alex Konig | ** *User will be able to specify an arbitrary classroom prefix at ZCU* |
97 | ** *User has the option to use an automatic weather forecast* |
||
98 | ** *User will be able to specify arbitrary weather conditions (e.g. temperature, precipitation)* |
||
99 | ** *These input data will be made into a web request and sent to the server* |
||
100 | 53 | Alex Konig | |
101 | 34 | Alex Konig | * Able to access and visualize prediction using the earlier specified input parameters |
102 | 46 | Alex Konig | ** *Heat map type visualisation* |
103 | 54 | Alex Konig | *** *Navigation (zoom, pan)* |
104 | *** *Pngs for separate buildings* |
||
105 | 55 | Alex Konig | *** *Animating colours representing rush level* |
106 | 53 | Alex Konig | *** Zoom on selected building |
107 | 1 | Roman Kalivoda | ** *Able to easily browse prediction across a greater range of time* - rewind, play, move step-by-step |
108 | 53 | Alex Konig | |
109 | * *Legend describing buildings / rush level visualistaion / work with application* |
||
110 | |||
111 | 48 | Alex Konig | * Accessible design |
112 | 53 | Alex Konig | ** Tooltips |
113 | 60 | Alex Konig | ** Date picker / *tabs to change cells* |
114 | 54 | Alex Konig | ** *Visible checkboxes* |
115 | 53 | Alex Konig | ** Autocomplete |
116 | 60 | Alex Konig | ** *Date format always visible* |
117 | 53 | Alex Konig | |
118 | 46 | Alex Konig | * User interface |
119 | 54 | Alex Konig | ** *Prevent illogical operations* |
120 | 1 | Roman Kalivoda | ** *Web application - WebGL* |
121 | ** Mobile application - Android |
||
122 | 53 | Alex Konig | *** Handling mobile specific events |
123 | *** Networking issues |
||
124 | *** Problems caused by file system incompatibility |
||
125 | *** Date picker |
||
126 | *** Different input system |
||
127 | *** Different layout |
||
128 | **** New UI script connection |
||
129 | 1 | Roman Kalivoda | |
130 | 54 | Alex Konig | * *Communication with server* |
131 | ** *Recieve weather prediction* |
||
132 | ** *Recieve rush level prediction* |
||
133 | 1 | Roman Kalivoda | *** *For one specific time* |
134 | 54 | Alex Konig | *** *For time interval* |
135 | 60 | Alex Konig | ** Implements protocol - UnityWeb requests |
136 | 53 | Alex Konig | |
137 | 57 | Alex Konig | * Pages hosting |
138 | ** *Github* |
||
139 | ** Gitlab |
||
140 | 56 | Alex Konig | |
141 | 54 | Alex Konig | * *Testing* |
142 | ** *Multiple browsers (chrome, mozilla, win and linux)* |
||
143 | ** *End user testing* |
||
144 | ** *Bugfixes according to tests* |
||
145 | 1 | Roman Kalivoda | |
146 | The app will be written in C# and Unity framework. |
||
147 | 33 | Alex Konig | |
148 | h2. Project Plan |
||
149 | 1 | Roman Kalivoda | |
150 | See Redmine tab Roadmap. |
||
151 | |||
152 | |||
153 | h2. Stakeholders |
||
154 | 24 | Alex Konig | |
155 | * Development Team |
||
156 | 1 | Roman Kalivoda | * Project Sponsor |
157 | * Project Mentor |
||
158 | * Users: lecturers teaching classes at ZČU |
||
159 | 22 | Zuzana Káčereková | * Users: students attending classes at ZČU |
160 | 4 | Roman Kalivoda | |
161 | 23 | Zuzana Káčereková | h2. Risks |
162 | 4 | Roman Kalivoda | |
163 | 21 | Zuzana Káčereková | h3. Available data is too crude |
164 | 4 | Roman Kalivoda | |
165 | Chances are that the data is not specific enough to make proper predictions for some buildings, much less single classrooms. Hopefully, the model could be improved gradually when there is more data available. In the meantime, the granularity will be selected based on the model quality we achieve. |
||
166 | |||
167 | h3. Our effort estimation may be grossly underestimated |
||
168 | |||
169 | 21 | Zuzana Káčereková | We should define/negotiate a minimum viable product and prioritize individual features. |
170 | 1 | Roman Kalivoda | |
171 | 26 | Alex Konig | h3. We proposed an unsuitable technological stack |
172 | |||
173 | Due to our unfamiliarity with web programming we've chosen to use technologies closer to our previous experience. These limit us in that the web application will not be easily compatible with mobile platforms. However, in turn, we can easily implement more complex UI and visualizations, and with some extra effort produce both a web and a mobile application using the same components. |
||
174 | 27 | Alex Konig | |
175 | 29 | Alex Konig | h2. Solution |
176 | 50 | Alex Konig | |
177 | 29 | Alex Konig | See bold parts of *Key product features* |
178 | 30 | Alex Konig | |
179 | 1 | Roman Kalivoda | h2. Details |
180 | |||
181 | For more details about implementation and processed data consult [[Project details]] |