Home
Mobile Studienet Project report
Contents
1. Seice 9 an Figure 2 Web version of Studienet Studynet viewed through a mobile device at full Home Programme Messages Groups Campus screen Announcements Calendar Courses yanced NET Progr Ingen emner de n ste 90 dage Adi IN J j Al 3 Bachelor Project ITHS Mobile Connectivity f Groups VIA News Mail Project 1 Million won the Growth Jumper price VIA students from Global Bus Value Chain Manage New Personal Online Facilities Shortcuts Meet VIA at ard is F Linked Page 5 Analysis General analytics Having in mind all of the problems stated earlier our team had to focus on them and think about what would be the best way to approach them and what would be the rational and most appealing way to simplify and solve them So to start we sat down and came up with a list of scenarios which would be most beneficial to the students using the system One thing that could be a benefit when the user is not being able to access a computer at the moment but they would still like to access the Studienet and see some information Therefore a fitting mobile solution for the purpose could come in handy Sometimes even if rarely it happens so that even by looking at the Studienet students are prone to misreading important announcement or event information Notifications could be the solution since the notifications of a mobile device produce a sound and visual signal that the user will most cer
2. dateAndlime datetime topics ntext id int PK courseName nvarchar 60 StudentCourseBT 1 abbreviathion nvarchar 15 name nyarchar 50 preparation ntext gender nvarchar 1 id int PK 6 courselnfo ntext courselD int FK cpr numeric 10 studentD int FK StafflD int FK class nvarchar 1 courselD int FK 1 w ScheduleTable id int PK 1 i lectureStart datetime Figure 33 Entity Relationship model diagram _numberOfLectures int courselD int FK Page 30 The RoleTable Fields id primary key it is represented by a uniquely auto generated number role role is the verbal definition of the privilege that is going to be applied to different kinds of personnel that manages the Studienet Since the Studienet is a very big system and has a lot of management going on by all kinds of teachers secretaries administrators and other personnel we have created this table which is used to give certain privileges to all staff members The StaffTable Fields id primary key it is represented by a uniquely auto generated number userName it is the username that every staff member will use to log in to the system in order to maintain it or post information password is the password the staff member is going to authenticate themselves with when logging in name is the actual real life name of the person that this account belongs t
3. e Text is the body of the event where the information about the event is written in detail e Sender the sender field allows the user of the Admin panel to identify him herself in order for the students who see the event to know who created the event The Admin Panel proved to be very useful when entering dummy data into the database in order to check if things work all right It also proved very useful when testing the Android application connected properly and if it can receive the correct information This saved us a lot of time and thus we managed to focus more on the rest of the functionality of the system Page 42 The frontend The frontend of Mobile Studienet consists of an Android Application Project which is created and implemented in the Eclipse IDE working environment for JAVA and Android application projects The Android Application Project is built installed on a smartphone device that runs the Android OS In our case that is a Samsung Galaxy S3 Android application architecture The Android application design and architecture are described using the class diagram shown below EventActivity staffEmployee CourseActivity TY LoginActivity Using CourseAnnoucement DateHolder ProgramAnnal ee Figure 41 Android application abstract class diagram Page 43 PollingService In Android a Service is a class from the Application Program Interface which runs behind the scenes without
4. Je and it is the only thing that title get set allows us to access this table text I es ae in the database As we can see system DateTime dateAndTimeModified 4 on this picture this model class has exactly the same L BEL g fields as the database table that s how the mapping between the code and the database table is done After we called the m lection lt gt EventStudentBTs 1 m ke m er i i a i i ale StattTable Figure 49 EventTable model class Page 50 entities SaveChanges command the Entity Framework basically gets the values of the fields of the model class and inserts them into the corresponding fields into the database Now let s turn our attention to the Applies to option in the create event wizard In this case the Program radio button is selected This means that we have to find all of the students that are enlisted for this program and associate them with the event that was just created if selectedRadio Program at J else if selectedRadio Course foreach var item in stu GetAllsStudentsForCourse courseIndexList ElementAt appliesToComboBox SelectedIndex Tostring r 1 stu AssignEventToStudent eventID ToString item id ToString Figure 50 Algorithms for the Applies to option of the Create event wizard Figure 50 shows all of the logic which stands behind finding all of the students for a program course
5. GET specifies to that system that this function will only allow the client to get information from the server Or in other words that the client will not be allowed to write or manipulate information using this specific function The second setting ResponseFormat WebMessageFormat Json tells the service that the message this function is going to return to the client is going to be on the type of a JSON message The third setting BodyStyle WebMessageBodyStyle Wrapped sets the contents of the message to be packed as tightly as possible That means that there will not be any useless Spaces or new lines in the message so that it will be as compact as possible And the fourth final setting to this function UriTemplate events_for_student id id is the signature that the client uses to call this specific function over the network It is the thing that differentiates this function from the rest functions that are created in the service When the client calls this function using this signature in the id part of the signature he passes the unique identification number for the student that is logged in the application That way the function will know for which student to get the corresponding events When the id part of the signature is substituted with the id of the student the signature should look like something like this events_for_student id 1 for a student with an id equal to 1 Then the service will recognize that the signatu
6. Page 48 First things first Let s follow the events that occur when the staff member presses the Add button to the Create event wizard The first block of code that gets executed is shown on figure 47 Its job is to get the information about the event that was entered in the wizard and manipulate it in such a way that it will be suitable to enter in the database DateTime date dateTime SelectedDate DateTime now DateTime Now if date null amp amp eventTitleTextBox Text amp amp eventTextTextBox Text amp amp senderComboBox SelectedIndex 1 amp amp appliesToComboBox SelectedIndex 1 I 1 String hoursComboBox Text minutesComboBox Text String modified now ToString yyyy MM dd HH mm ss stu CreateEvent selectedDate eventTitleTextBox Text eventTextTextBox Text staffindexList ElementAt senderComboBox SelectedIndex ToString modified Figure 47 Code for creating an event entry in the database i In this part we have two dates The first one is when the event deadline is and the second is the system date and time that are of the Mobile Studienet By having the second date we can know when was it created or last edited Then we have to format them in such a way that will be suitable for the database fields that hold them The format of the date must look like this 2013 12 13 11 59 00 Afterwards we call the CreateEvent method that is from th
7. has access to all information he or she is allowed to see and all of the information that he or she is allowed to manipulate Here are the main parts of the Studienet website we focused on while reverse engineering it Announcements The program announcements section of Going abroad 3rd semester Studienet is the place where every ICT Engineering Mona Wendel Andersen MWA student sees his or hers information Info Meeting Elective Courses concerning the program they are enrolled ICT Engineering in This meant we have to make our hlons Wendel Andersen MWAJ International Partner Week Mons Wendel Andersen MWAJ backend structure in such a way that it will be able to support every type of information relevant to having the announcement functionality Figure 7 Program announcements section Mail Horsens tutor Horsens tutor 1323 Save RUS wees The student e mail along the rest of Studienet s functionality is one more SS EE 12 43 way for the students to keep track of i hadak important information and share it as Stepha see bs Kors holm SE K 2 12 09 31 well There is no question about it it is a E o a must to have it incorporated in the Jonas Vognsen 112 21 05 mobile system Re 195 looking for C developers New Figure 8 Email section Page 12 Students are able to see which courses they are signed up to That information Courses Advanced NET Programming ITH5 DNPI
8. id int PK text ntext name nvarchar 50 StafflD int FK CourseAnnouncementsTable id int PK dateAndTlime datetime text ntext courselD int IFK staff int IFK EventStudentBT eventlD int IFK studentlD int FK StudentTable id int PK name nvarchar 50 StudentCourseBT studentlD int FR courselD int FK Figure 27 Abstract ER model diagram of the database CourseTable id int PK courseName nvarchar 60 Page 21 Platform availability Even though we had our minds almost set on this topic by looking at the answers to question three from the survey we just couldn t help but to investigate a bit further There are three major platforms on the market right now and they are Android iOS and Windows Phone Those are the operating systems almost all smartphones use nowadays To select one we made a list of the advantages and disadvantages for each one Android Created by Google it has the largest market share of the smartphone industry in the entire world which means it is the most common to use platform out there Also is the cheapest platform to distribute which means that a wider audience of people will be able to afford a smartphone with Android iOS Created by Apple is the second most popular mobile platform in the world and also has a very large market share over the smartphone market The downside to that
9. or a single specific student Basically what this piece of code does is that it has a check which finds out what the staff member creating the event selected the Program radio button the Course radio button or the Student radio button Depending on that selection then the corresponding code is executed If the staff member selected the Program radio button the code between the curly braces in the first part of the check will be executed What it does is that it goes into the StudentsTable in the database and looks through each student and compares if the program selected in the wizard corresponds to the program the student is enlisted for If that is the case then it gets the student and assigns the event to that student This happens for all of the students that are enlisted for the selected program The same logic is applied if the Course radio button is selected The third scenario however does not require that much work It just assigns the event tot the student that is selected through the wizard if the Student radio button was active Page 51 After finding all of the students for this program we have to call a special function that will associate them to the event The function depicted on figure 51 has to be called once for every student that has to be associated with the event in order for the students to receive the new event notification on the client side In general what this function does is that it takes only two arguments
10. 47 eee Advanced NET Programming Advanced NET Programming NOUNCEMENTS SESSION PLAN COURSE INFO S COURSE INFO PARTICIPANTS Topics Teachers Writing LINQ querries Kim Foged Preparation Students Look at the tutorial PDF file that Lubo have uploaded in the session Dimitar Spasov material section Topics WCF service projects Preparation Please read pages 145 167 from the course book before the lecture Topics WPF and data binding Dranaratian Figure 46 Course menu Implementation This section of the report describes how we went about creating the core functionality of the most important features corresponding to the most important use cases Along with the descriptions we are arguing on the choices we made during the construction of the system The backend Creating an event The creating of an event in the Mobile Studienet system is both simple and a bit complex at the same time On figure 39 that we saw a bit earlier it is shown that the event creating wizard requires for the staff member to select the date and time of the event select to whom it is applicable enter the title and text and identify himself as the sender of this event The Applies to option for example that allows the sender to select if the event will be applicable to a whole program of students to all students attending a specific course or to a single student may look simple and obvious at first but it s not
11. And he must enter the new password twice in order to confirm it Post conditions The user has successfully changed his password 4 View the event stack Pre conditions The user has to navigate to the event stack screen Post conditions The user is able to see a list with all upcoming events 5 View detailed info for selected event Pre conditions The user must be on the event stack screen and he must select an event from the list Post conditions User is able to see detailed information for the selected event 6 View courses for student Pre conditions Student must navigate to the courses screen Post conditions The student can see a list of all the courses he is participating in 7 View info for selected course Pre conditions The user must have selected a course from the course screen Post conditions The user is presented with information about course announcements list session plan list course info and students and teachers list 8 View detailed info about a course announcement Pre conditions The student must navigate to the course announcements list and select an announcement Post conditions the user is presented with detailed information about the selected announcement 9 View program announcements Pre conditions The user must navigate to the program announcements screen Post conditions The user is presented with a list of all of the program announcements 10 View detailed info for selected program announcement
12. One of the arguments is the unique identification number of the event we AssignEventToStudent studentID entities just created represented by table the eventID argument and event ID _ToInt32 eventID the second one is the studentID ToInt32 studentID unique identification EEE Add table Me ne oe non 02 gt the current student aara represented by the studentID This function performs the same main actions as the one that we described above The only differences is that it takes different arguments and Figure 51 Assign event to student function uses a different model class entities SaveChanges from the Entity Framework This time it uses an EventStudentBT model class which represents the EventStudentBT table in the database As described earlier in this report this table holds the association information between the students and events in the Mobile Studienet system The visual representation of the EventStudentBT table in the database can be seen on figure 52 Here we can see that the student with unique identification number 1 is associated to d evertlD studentID events with identification numbers 56 57 58 96 and 98 This means that the student can see this events in the Mobile 7 Studienet application installed on his smartphone 2 56 57 1 4 57 5g 1 At the same time we can see that event with identification 4 96 96 1 number 98 is associated with student 1 and student 15 which
13. announcement concerning a hand in due date for example poses a threat to their study performance and that is another reason why we need something to keep the students informed in times like these A system that could hold the information that Studienet does and at the same time be so light that you could use it on your smartphone in any time at any place could harness the potential to keep the students informed at all times and improve their overall performance in the studies This report is structured as follows first we are presenting a detailed analysis on the research and subjects at hand Next we are describing the tools used and the design of the implemented solution And to finish off we are discussing how we actually implemented the solution and the choices we made for that to happen Page 4 Lubomir Sotirov 142323 Site Actions v Side St 1 0 i 0 S g p dette websted English Home Education Announcements Groups Campus Announcements Calendar Hold Empty the next 90 days Advanced NET Programming ITHS DNP Bachelor Project ITHS BPRI2 A13 Mobile Connectivity ITHS MOBI2 A13 Project Sites VIA New Mail Thermography Project 1 Million winner Growth Springer Prize VIA students from Campus Horsens won Growth Springer Prize to Danish Entrepreneurship Award 2013 gt New mail Personally Online Services Shortcuts Meet VIA on https studienet via dk sites en de C
14. be available to a user in order for him to operate the Mobile Studienet Page 14 system Receive e mail View aS 7 Receive notification for new or updated Information sende mail Change password View selected date schedule View detailed info for selected event l 1 lt lt extend gt gt lt lt ext nd gt gt d View calendar View the event stack View program announcemen Delimitations ts Select student language 1 lt lt extend gt gt 1 View all cources for student View full session material View detailed info for selected announcement View course announcements y View full View info for l session plan selected course lt Include lt lt Include gt gt lt include gt gt he View course lt lt include gt gt lt lt intlude gt gt i 1 info View detailed info for selected announcement View teachers list of course View students list for course Figure 13 Mobile Studienet use case diagram Page 15 Descriptions of the most important use cases follow in the sections below Events After logging in the application the user is going to be presented to the Event stack The Event stack is the first screen that would be shown when the application is opened because it is t
15. courselds new ArrayList lt Integer gt 131 connect new Connecti 132 connect execute 133 1345 updateThread new Thread mew Runnablef 135 1366 Override 137 public void run I 138 while true 139 getLatestEvents 148 checkEvents 1 141 if hasEventChanged 142 sendLatestEvents 143 144 getLatestAnnouncements 145 checkAnnoucements 146 if hasAnnouncementChanged 147 sendLatestAnnoncements 148 1 149 try I 158 Thread sleep updateTime 151 catch InterruptedException e I 152 153 e printStackTrace 154 1 155 1 156 1 157 158 pi 159 168 updateThread start 161 return START STICKY 162 Figure 61 PollingService onStartCommand method Page 58 When a service in Android is started the onStartCommand method is executed It is the access point for the Intent that we just sent from the MainMenuActivity The first thing that happens here is registering a receiver similarly to the receiver in the MainMenuActivity only this time we register the receiver to listen if the clear notifications button is pressed this is the button that becomes visible and active when notifications are present on the screen The only way the click event of the clear notifications button can be consumed is via a receiver It is an unusual thing for Android because all of the rest types of buttons can have their own click listeners which are triggered when the user clicks them bu
16. data needed to incorporate a working Page 33 scenario of the everyday schedule for every course As we stated above the lectureStart and numberOfLectures fields are enough to calculate all of the lecture and breaks timeframes and display it to the user in a beautiful and understandable manner The SessionPlanTable Fields id primary key it is represented by a uniquely auto generated number dateAndTime is the point in time when a session plan has been added or edited in the Studienet system topics it is a field that will hold information about the topics to be taught or discussed in the given lecture preparation holds text about what should the students read or do in order to be prepared for the lecture courselD foreign key to the CourseTable points at which course is this session plan for staffID foreign key to the StaffTable shows which staff member uploaded the current session plan The SessionPlamTable contains fields for every type of information we found relevant when reverse engineering the website The EventsTable Fields id primary key it is represented by a uniquely auto generated number dateAndTime this field holds the date and time of when the event should fire It is a point in time in the future based on which the application will fire an alarm title is the field that holds the text that goes into the title of the event text is the field that holds the text of the body of the even
17. info screen Page 20 20 49 Advanced NET Programming ANNOUNCEMENTS SESSION PLAN COURSE Vacation There will not be any lectures in week 48 because am going on 12 12 2013 20 25 Example projects have uploaded an archive file with examples of all of the 12 12 2013 20 27 Figure 23 Course announcements screen Advanced NET Programming COURSE INFO PARTICIPANS Teachers Kim Foged Students Lubo Dimitar Spasov Figure 25 Screen enlisting all teachers and students participating in the course A more technical description of the use cases can be found in appendix 2 of this document This small state chart diagram shows what the map of the Mobile Studienet is and what the user can do User starts the application a Event stack Courses Program Announcements User clicks on an event on course User clicks on an announceme butten View detailed info about event View schedule Open for selected email date application View detailed Course Teachers info about an announcements and announcement students list Session plan Course info User makes selection User sees result Figure 26 State chart map of the Mobile Studienet system This abstract ER model diagram describes in short what some of the most important database tables look like with their main fields EventTable _id int PK dateAndTime datetime
18. nothing happens c Nonew notifications The Ul removes the entry that has been deleted In a similar fashion we get the latest announcements from the server with the getLatestAnnouncements method and compare with the checkAnnouncements method The outcome is identical to the outcome of the fetching of the latest events Moving further down we set the time frame in which we want our UpdateThread to execute those N minutes we talked about so much already Now that we are done with the initialization of the thread we can start it by calling updateThread start The START_STICKY that the onStartCommand returns is basically a flag telling the Android OS that we want our service to run forever even if for some reason like low memory the operating system stops the service the Android OS will restart the service Page 59 Testing and results General testing In this project the testing period began almost instantly when we started implementing the functionality we have planned from the beginning This is because in order to verify that something that has just been created works we have to test almost every time there is even minor changes to the code For example when we created the tables in the database and all of the constraints to the fields in each table we immediately started inserting some information in order to test out if those constraints work properly When we created the WCF web service we did not continue our wor
19. number length error Figure 57 Student number character error Checks like these keep the user of the Admin Panel informed if they have done something wrong so that they know what to change Some of them act as warning messages and some of them act as errors With these messages we can keep the system fail proof and protected from crashing in case something out of the ordinary happens Some of them are a result of the testing that we have performed which showed some weaknesses and made us fix the holes in the security of the system The frontend Polling data Getting the data from the backend and notifying the user for updates is quite straight forward and yet not so easy to be implemented As mentioned earlier in the design section of the report in order for the client to update the current data on the mobile device he has Page 55 to first get the new data from the server The diagram below illustrates the logic behind the polling mechanism that is used in the Mobile Studienet a Update Thread 4 executing every N start service fetch data from the backend compare latest data with current data minutes send latest data to main activity current data latest data hew or updated data gt fire notification deleted data Figure 59 PollingService activity diagram All of the data retrieved from the backend goes through the PollingService That way we avoid possible conflicts of d
20. of the WCF service 00 Admin panel event manager This is the Add Event window of the Admin Panel program Android application abstract 3855 Google Cloud Messaging workflow Polling mechanism Figure 44 Log in screen Mobile Studienet main Course menu Figure 47 Code for creating an event entry in the database 4 CreateEent function sssseccssecccsseccssecccoseccoseccooseccoseeeo Figure 49 EyventTable model 04 Algorithms for the Applies to option of the Create event wizard Assign event to student function Figure 52 EventStudentBT holding associations between students and events GetAllEventsForStudent function that is exposed to the network Figure 54 Full GetAllEventsForStudent function Empty fields Warning 25 cosetded ers rense PollingService 7 9 Black box testing Use case diagram Log in screen Main Menu Figure 69 Detailed event 1161021 SOEC icin ocho E A Daily schedule screen Email redirecting screen essssseesceeseesceescreceesceescssceesoeeo Message boxes for different warning scenarios Figure 56 Student number character error Student number length error Figure 59 MainMenuActivity onCreate method PollingService onStartCommand method ssseessssssesseeseese SWACO OX ESN Error
21. operating system Since there are different smartphone operating systems on the market and our timeframe for the project was limited we had to focus on only one of them That is why we needed to know that is the most favorable one throughout the VIA society What is your phone s operating system 58 21 22 39 16 427 2 99 Android iOS Windows Phone 60 50 30 20 10 0 Figure 5 Survey results for question number three Page 9 of times chosen of times chosen 58 answered in favor of Android which pointed that this could be our choice of platform Question number four How would you feel about receiving notifications on the application regarding e mails announcements deadlines exam info etc How would you feel about receiving notifications on the application regarding e mails announcements deadlines exam info etc 100 90 80 92 54 60 50 30 20 10 46 1 would like to have it It s pointless Figure 6 Survey results for question number four g Here the results are also pretty conclusive with over 90 of the students who voted being in favor of receiving updates and notifications on information about VIA and Studienet Question number 5 Describe in not more than two sentences what more would you like to see in the mobile version of Studienet Here the students were prompted to respond with an open answer which could give us some more insi
22. option is that in order to even start developing an application for that operating system we have to have a certified developer license which costs 100 per year It is not even allowed to start creating an application if we do not have that license Windows Phone Created by Microsoft is the third most popular platform on the market It is fairly new and still in its baby steps towards success That s why it does not have as many users out there as the Android and iOS platforms Being impossible to develop an application for iOS unless we have paid the 100 fee for a developer license made us fall back from that option And to Windows Phone it is just not that popular and very few people own a device that is running Microsoft s operating system The answers from the students to question three and the outcome from our research were more than enough for us to select Android as the platform of choice for the Mobile Studienet User experience After deciding on a platform and exploring all the necessary functionality our system should have we began to investigate what would be the best way to create a satisfactory and light user experience that the students are going to like We analyzed the situation and bearing in mind that the application will be used by people from different spheres of education it has to be intuitive and organized in such a way so that everyone can find their way around when using it This was the time when one o
23. staffiD Navigation Properties Navigation Properties Properties StudentTable programName Navigation Properties y ProgramAnnoun p ProgramCourse y StaffProgramBTs gal StudentTables y CourseTable y StaffTable Ts Properties 1 att id Properties lectureStart id F berOfLec Fe num berOtLectur studentNo Properties courselD fa Properties password id Navigation Properties id programlD programlD courseName val CourseTable Properties name courselD Set abreviation ye id courselnfo dateAndTime topics preparation courselD stafflD gender Navigation Properties cpr y CourseTable Ji class Fi ProgramTable Navigation Properties Navigation Properties CourseAnnounc y ProgramCoure A ScheduleTables y SessjonMaterial Properties m yal Session PlanTables CourseTable vr id y StaffCourseBTs yo Stafffable studentiD y StudentCourseBTs courselD Navigation Properties El EventStudentBTs El ProgramTable gt Navigation Properties E StudentCourseBTs CourseTable yal StudentTable Figure 37 Entity Framework model diagram Page 40 On figure 37 is depicted in great detail what the model classes generated by the Entity Framework look like If compared to the Entity R
24. used by C developers worldwide and it was included in our DreamSpark student accounts as a free download option The Visual Page 25 Studio supports creation of various types of projects some of which are web sites databases user interfaces and many more It is perfect because it has all the functionality we need in one place That would make our work go faster and smoother Of course there were other tools that would allow us to develop in the C programming language but they are created by third party companies and do not have all of the things we need in one place We would have to install different add ons to the tools and that would only complicate our development Microsoft SQL Server 2008 and SQL Management Studio For data storage that will hold all of the information to the Mobile Studienet we used the Microsoft SQL Server 2008 database For creating and managing the database we used the SQL Management Studio It is a tool that implements developer friendly ways of manipulating SQL Server databases The Microsoft SQL Server also has a very good integration capabilities with Visual Studio which furthermore would make our development faster and smoother Entity Framework The Entity Framework is not a tool but a technology created to simplify the management of databases when they are being used by a program or a website It works in such a way that it allows developers to link a database to a Visual Studio program and
25. viauc dk Figure 67 Log in screen Page 68 Once the user has logged in he is redirected to the main menu of the application From there he will be able to navigate through the different sections of the main menu Event stack Course Program announcements Calendar and Email Bachelor project deadline 13 12 2013 12 00 The bachelor project deadline is on the 13th of December If you fail to upload your projects in time you will not pass the course Ib Havn Figure 69 Detailed event screen Page 69 MobileStudienet EVENT STACK COURSES ANNOUNCE Bachelor project deadline The bachelor project deadline is on the 13th of December If you 13 12 2013 0 Christmas eve party at VIA Lets celebrate Christmas together VIA and DSR are 24 12 2013 20 00 MOBI2 examination date This is the MOBI2 examination date Please be prepared to 16 01 2014 10 00 ICT Engineering field trip ta tha I EON fantan Figure 68 Main Menu screen If the user clicks on an event program announcement or a course announcement a new screen will appear with detailed information about the selected entry From there he can press the back button to return to the main menu course menu If the user is located on the calendar tab he will get a visual representation of a calendar with selectable dates If a user selects a date and presses the View Schedule button he will be presented with a new screen showing all of the lect
26. well integrated in all of the NET application projects including ASP NET Windows Presentation Foundation WPF Windows Communication Foundation WCF and others Page 39 4 classes Cad Properties aie R l Properties vi id ye id role Properties userName Gi I Navigation Properties Sana acy ve i dateAndTime y StaffTables name J title alias TT text rolelD 1 AndT f dateAndTime stafflD E Navigation Properties Jo tte dateAndTimeM 1 Navigation Properties password Properties Gre y CourseAnnounc h text y EventStudentBTs id Program nnoun J aiD al StatfTable date amp ndTime rE RoleTable ea i ae titie Navigation Properties Te Session Material text Session PlanTables program ID i rta cursebTz staffiD dal StaffProgramBTs Navigation Properties yal CourseTable f cs yal StaffTable gal ProgramTable vn ya StaffTable Properties F SR SessionMatei_ 8 we id eveni i Properties Properties eventlD os Properties studentiD a id vf id amp staffiD amp staffiD sao EventTable programiD courselD materialType EventTable id z dateAndTime Navigation Properties Navigation Properties fileNa fileName y ProgramTable CourseTable fink gal StaffTable Jal StaffTable E corse
27. 2 A13 varies from semester to semester and Bachelor Project ITHS BPRI2 413 from it the students can access specific Mobile Connectivity ITH5 MOBIZ2 A13 course details and information about a certain course In our solution each course is stored along with its information so that students can access it the same way they do when using the web version of Studienet Figure 9 Courses section Part of the course s information Announcement that the students are able to see when they select a course are the rit Title course announcements Here each teacher posts information that is relevant to the course We made Welcome to 542 sure that not only we support that In MOBI we are going to program android phones with focus on To pass the course each student must contribute in a fair manner The plan outlined below will most likely be adapted and changed Figure 10 Course announcements section Another type of information each course has is the material that is going to be covered in the upcoming lectures by the teacher This is vital for the students to know in order to be always prepared for their studies Page 13 information but to include it to the list of features that the user is going to be notified for when there is a change or a new addition to it Period Topics Wednesday 28 08 2013 week Practical 35 HelloWorld on Android Bluetooth for Android Presentation Wireless basic
28. Mobile Studienet BPRI1 Project report AUTHORS SUPERVISOR Lubomir Sotirov 142323 Stephan Erbs Korsholm Dimitar Spasov 143062 VINK December 13 2013 4 Tr UNIVERSITY COLLEGE Contents POS AGU MU OOUCHION an seecrans PYAR SIS General analytics ssesssessesceescreseesceeseeeoe UV TEN Technical analytics Requirements and use case description Platform availability eonnennevnnvnnevneenner User experience a ansnnnnsunnnnnnnnnnnsnnnnnnnnee Delimitations eseoonovnnnneneenennenennenennene Tools and 1 008165 TNE P CKEN dar er dn Development ETTE Design and architecture 6 System architecture awnannannnnnnvnnnnnnnnnennee The 0221 EEE Database WCF service and Entity Framework Admin PELS TARE frontend sasnrsrore nere Android application 6 6 implementati sccscisiccedccsiscaceduieesteiciacsdedisiaees TEL Creating an event anvnnnnnnnnnnnnnnnennnnnenee Fale OPOOIING THE ONENI serseri erea EEEE E POU GALA EE ESNE Starting 1 6 Fetching and comparing data from the backend Testing and Ce EE White box testing ccc cece ec cec cee ceeeeeeceeees PUK KDO OSEN RET EEE T E E NET 62 BS 0 EET EEE ERAEN ATOAN NAE 63 ENN PG 64 Vee 1 816 1 ER ee ee
29. Pre conditions The user must have selected an announcement from the program announcements list Post conditions The user is presented with a detailed information about the selected announcement 11 View calendar Pre conditions The user must navigate to the calendar screen Post conditions The user is presented with a monthly view of the calendar 12 View selected date schedule Pre conditions The user must have navigated to the calendar screen and he must have selected a certain date Post conditions The user is presented with the daily schedule for the selected date 13 Receive a notification for new or updated information Page 67 Pre conditions The user must have started the Mobile Studienet application at least once before to be eligible for receiving of notifications Post conditions The user will start receiving notifications whenever something is added or changed in the information 14 Receive Send and view email Pre condition The user must have set up his VIA mail account into the Android built in email client following the tutorial on the email screen of the Mobile Studienet application Post conditions The user will be able to receive send and view emails using his VIA mail account Appendix 3 User manual for the Mobile Studienet system To log in the application the user must enter his VIA account credentials in the fields of the log in form and MobileStudienet tlie he th click the log in button XXXXX
30. Surveys 1 It was the perfect choice for that task because it is extremely simple to use contains all the necessary tools in order to make the survey in a professional way and allowed us to share it the way we wanted The tool also had the ability to extract the data from the results and present it in various visual ways from which we could choose It had the ability to produce different types of charts some of which column type line type pie type bar type and many more types of charts When we composed the real online survey based on the questions we previously went through we had to choose how we were going to deploy it so that all of the VIA University College s students would be able to see it We figured out that our best bet is to post it online in the VIA University s Facebook page For quite a while now we have been using the VIA Facebook community page and we know that it is quite active and every member of the VIA institution is a member of that online community as well This observation got rid of the fact that some people might miss the opportunity to see the survey we have prepared for them So it was decided we posted the survey and set a time frame of seven days in which we would give the students the opportunity to fill it in Bearing in mind our limited timeframe to develop this project we figured that seven days was quite enough time to collect the relevant data we needed Page 7 Survey results At the end o
31. a direct user interaction the service has no user interface Services can continue to run even if the application is not actively running This means that the service can continue to do work without being interrupted Services are used for repeating and long running operations such as internet downloads and checking for new data while working in the background Possible ways of fetching data from the backend Push mechanism using GCM Google Cloud Messaging GCM for Android helps developers with sending data from servers to their Android applications With GCM one can send data to his application only when new data is available instead of making new requests to the server repetitively checking for new data every N minutes Figure 42 Google Cloud Messaging workflow So how does it work 1 First of all the Android device sends a sender id and an application id both of which are unique to the GCM server for registration 2 Upon successfully registering the GCM server creates a unique registration id and sends it back to the android device Page 44 3 After the device receives the registration id from the GCM server it sends that id to the application server 4 The application server stores the registration id for this device in the database for later use a Every time a there is some new or changed information in the application server it will send a message with that information to the GCM server This messag
32. ange without changing the LY ProgramTable cs application code In other words doing something that Ly RoleTable cs can cause minor changes to the structure of the Ly ScheduleTable cs database will not affect the other part of the system LJ SessionMaterialTable cs and there will be no need to redesign the code Ly 2essionPlanTable cs LI StaffourseBT cs LI StaffProgramBT cs LI StaffTable cs 3 The applications that use Entity Framework are O studentCourseBT cs freed form explicitly typed procedures that use the O Student lable cs database This means that no constant operations are Figure 36 Entity Framework model coded in the application in order to access or change the database information This provides more flexible way for developers to create the programs It supports Language Integrated Query LINQ support LINQ is a way to write SQL database like queries from the code of the program instead using the explicitly typed procedures mentioned in point number 3 While explicitly written SQL procedures make changes directly to the database the LINQ makes changes to the model classes created by the Entity Framework and then these classes apply the changes to the database Entity Framework provides integrated Visual Studio tools to visually create entity models and to auto generate models from an existing database which we did in our case or can create databases that are hand edited through Visual Studio for full control It is
33. ata mismatch First the PollingService is started and when that happens the update thread that is inside the PollingService is also started All the magic happens exactly within the update thread where the latest data from the server is fetched in a JSON format and decomposed to be placed in the model classes Using the model classes is necessary so that the latest data can be converted to become compatible with the current data in the application When that is complete the comparison between both sets of data commences The outcome of that comparison determines what is going to happen next a If there are new or updated entries In that case a notification is fired notifying the user and the latest data is sent to the MainMenuActivity where the UI is updated b If there are no new or updated entries In that case after N minutes data is fetched again and the logic repeats itself Page 56 c If there is deleted entries In that case the user does not get a notification and what happens is simply that the Ul removes the entry that has been deleted Now that we have a good grasp of the logic behind the polling we can take a look at how it is implemented within the Android project Starting the PollingService 1326 Override protected void onCreate Bundle savedInstanceState 3 super onCreate savediInstanceState 134 setContentView R layout activity main menu 135 136 initializeListsf 137 138 updateReci
34. ber can teach many courses and at the same time one course can be taught by many staff members The ProgramCourseBT Bridge Table Fields id primary key it is represented by a uniquely auto generated number programID foreign key to the ProgramTable it represents the program that the course is associated to courselD foreign key to the CourseTable represents the course that belongs to the certain program This table depicts the relationship between the ProgramTable and the CourseTable While a program can have many courses that are taught in it at the same time a course can be taught by many programs For example Global Business Engineering students sometimes take courses from the ICT Engineering program The StudentCourseBT Bridge Table Fields id primary key it is represented by a uniquely auto generated number Page 35 studentID foreign key to the StudentTable it represents the student which is taking lectures in a certain course courselD foreign key to the CourseTable it shows which course is the student taking lectures in The StudentCourse bridge table is the link between the StudentTable and the CourseTable We made it like that so it will support the scenarios of one student taking lectures in many courses at the same time and that one course can be visited by many students at the same time The EventStudentBT Bridge Table Fields id primary key it is represented by a uniquely auto g
35. cation They will receive A t z 8 sound and visual represented notifications on their phone Wi Fi dl about events announcements e mails and changes in schedule This will cover when something has been added X VY Auto or changed no matter what type of information it is When Pat a student selects a notification he will be directly Notifications Clear f l transferred into the application and shown the details of the gt UUM notification so he or she can see the information right Bookshop discounts away gt 1 New event CT field ti ip to the LEGO factory Emails Inbox 0 142323 viauc dk 4 Last updated 04 12 2013 15 57 Yesterday 2 03 12 2013 A Figure 17 Notifications of the Mobile Studienet application The user will have the option to send receive and read e mails from his or hers VIA e mail account 02 12 2013 A An investigation we made led us to the results that Android has a built in email client which can support exactly the type of email that the VIA email is Microsoft Exchange That was very good finding 01 12 2013 A because in that case we didn t have to build an email client from scratch Instead the students can set up their VIA email in the default Android email client and everything is done as easy as that 1 29 11 2013 A Figure 16 Android email client synchronized with VIA mail Page 17 Program announcements MobileStudiene
36. dienet in such a way makes it look nicer cleaner and makes navigation between sections seamless Page 23 Delimitations For now our application will not support the Stads access for the students Stads is the Danish student database where all grades and all information for all students is stored The reason for this is that Stads contains very sensitive information about all Students and their credentials and thus we leave it out as a future option Support for other mobile operating systems will not be implemented at the current State of the system as we are very limited in time and in order to incorporate support for the other OSs we will need the time for developing this project times the number of platforms Since this university is international which by itself states the fact that everyone Studying in it is capable of speaking English That for now at least eliminates the urgent need of incorporating multiple language functionality to the system Session materials access will be omitted due to the fact that file management using a mobile device is not that mature at that time and some of the files might not even be supported for the user to interact with This made us rethink our priorities concerning the session materials functionality and leave it off the scope for the project for now So it was settled We had the requirements we had the planned functionality and the platform of choice we had the user interface decided
37. ds we need in order to insert the event in the database This is done by creating an instance of an object that represents the Entity Framework in the system This instance of the object will provide us with the necessary commands that will allow us to insert the information in the database and then save the changes we have mage The next step in the process is to create an instance of the EventTable model class that is an object which represents the EventTable in the database It is the object called table That way we can map the arguments that we gave the function to the fields of the database table After we have initialized that object we have to set its properties to be equal to the arguments we passed to the function from the beginning This would make the EventTable object full of the information that the staff member entered in the wizard After that step is done the last thing to do is to add the information to the database table using the entities EventTables Add table Which adds the table object with all of its fields into the database as a new entry of information And at last we call the entities SaveChanges command which commits the new changes that have been made to the database On figure 49 is the code of the EventTable model class that was generated by the Entity EventStudentBTs Aer Framework As mentioned before it represents the EventTable of the database FventTablef id SH System DateTime dateAndTime
38. e WCF service and in the parentheses we give the new formatted date and all the rest of the fields that were populated in the wizard public string CreateEvent string dateAndTime string title string text string staffID string dateModified I 1 try 1 1 using MobileStudienetEntities entities new MobileStudier r 1 dateAndTime Convert ToDateTime dateAndTime title title text text staffID Convert Tolnt32 staff1D dateAndTimeModified Convert ToDateTime dateModified J 3 entities EventTables Add table entities SaveChanges return Success throw new Exception Figure 48 CreateEvent function Page 49 After we have called the CreateEvent function from the code in figure 47 and passed the arguments to it we come to the code in figure 48 What the CreateEvent function does is that it takes as arguments all of the data that the user entered in the wizard except the Applies to option First is the dateAndTime argument It represents the selected date and time values that the Staff member selected in the wizard Next are the title and text arguments which represent the title and body text of the event After that is the staffID it is a unique identification number that corresponds to the selection of the Sender field of the wizard And last comes the dateModified argument which indicates the local time at what the event was created or last edited These are the only fiel
39. e also contains the unique device registration id stored earlier in the database b Using the unique registration id the GCM server will deliver the message to the Android device corresponding to that registration id Polling mechanism using an update thread and an Android Service The polling mechanism simply consists of a thread that is running in the background in the Android service This thread will be executed once every N minutes Its task is to request data from the application server and compare the new received data with the current data stored on the device If the new data is different from the current data the user interface of the Android application is updated with the new data local network n minutes p request data Figure 43 Polling mechanism workflow Advantages of using push mechanism over polling mechanism Less load on the application server The querying is done only when there is a change in the information More accurate updates The data on the mobile device is updated immediately after the information has been changed on the application server Page 45 Less battery consumption Since the mobile device does not have to send requests to the application server every N minutes the battery consumption is reduced because the processor does less work compared to when using the polling mechanism In our case the Mobile Studienet application was implemented using the polling mechanis
40. e case diagram description Receive e mail MH Receive notification NW sene pg for new or updated Information Change password f View selected i date schedule View detailed info for selected event I lt lt extend gt gt I lt lt extend gt View the event stack _ View calendar View program announcemen ts Delimitations Student 1 lt lt extend gt gt View all cources for student View full session _ material View detailed info for selected announcement 1 lt lt exiend gt gt 1 at View course announcements View full session plan View info for selected course z o l lt lt inclyde gt gt i View detailed info for selected 1 announcement View students list for course View teachers list of course Figure 66 Use case diagram Page 66 1 Log in Pre conditions The user must have an active account in the Studienet database Post conditions User has successfully logged in the Mobile Studienet 2 Log out Pre conditions The user must have logged in first to be able to log out Post conditions The user successfully managed to log out 3 Change password Pre conditions The user must remember his old password in order to change it
41. e classes if a teacher is sick or the classes are canceled Page 6 e The user will be able to manage his or hers VIA e mail account through their mobile device send receive e mails Having their inbox synchronized with the smartphone would be more comfortable and user friendly option for the students than going online and using the online email solution e The user will be able to see all the courses he or she is enlisted for and also the session plan and announcements for the given course That way students will have access to all of the latest information concerning the specific course Another really good idea that came to our minds which would help us analyze the situation was to actually ask the students themselves What a better way to get the best results than to ask the people who are familiar with the Studienet and have been using it for a while now We came out with a list of around fifteen to twenty questions and then took some time to filter through them in order to select the best and form a survey We put together the survey in such a way that it would contain four multiple choice questions and one open question that can be answered in just a couple of sentences This would allow for the students to be able to express their feelings towards the idea we are proposing and even give us more suggestions to what they would benefit from and how to go about it The survey was created using an online website called FreeOnline
42. e database design and architecture are described using the Entity Relation model diagram seen below Page 29 StaffT able id int PK Raser 1 si userName nvarchar 32 id int PK password nvarchar 32 name nvarchar 50 alias nvarchar 4 rolelD Int FK role nvarchar 20 CourseAnnouncementsTable ae id int PK dateAndlime datetime EventTable title nvarchar 50 id int PK text ntext id int PK 1 courselD int FK i dateAndTime datetime ProgramAnnouncementsTable etary RE maa I title nvarchar 50 7 7 id int PK text ntext Hen staffiD int FK dateAndTime datetime JE title nvarchar SQ dateAndTimelvlodified datetime gt StaffCourseBT gull Ia FI id int PK See staffiD int FK courselD int FK StaffProgramBT EventStudentBT id int PK id ina StafflD int FK programID int FK eventD int EK prog 8 Sessione Go studentlD int FK id int PK materiall ype nyvarchar 5 ProgramTable dateAndTime datetime id int PK fileName nvarchar 120 programName nvarchar 40 ul int FK StafflD int FK ProgramCourseBT id int PK StudentTable programID int FK a Eve courselD int FK id Int Py CourseTable StudentNo numeric 6 password nvarchar 32 programID int JFK SessionPlanTable id int PK
43. e that will hold the information for every program announcement entered into the Studienet for every program We have made it so that depending which student from which program uses the system they will only see the announcements relating to the program they are enlisted for This is done by using the programlD reference to see which program does the announcement goes to The CourseTable Fields Page 32 id primary key it is represented by a uniquely auto generated number courseName is the name of the course for example Web and Database Design abbreviation is the course s initials that are used sometimes to identify the course for example ITHS MOBI2 A13 this is the abbreviation for the Mobile Connectivity MOBI2 course that is taught in the autumn 2013 hence the A13 suffix courselnfo is the description for every course what it is going to be about and what is going to be taught during the semester The CourseTable contains every vital information about the courses that we managed to extract during the reverse engineering of the original Studienet The CourseAnnouncementsTable id primary key it is represented by a uniquely auto generated number dateAndTime represents the time the course announcement was entered into the system or the last time it was modified by any staff user title is the field that stores the text that the announcement s tile is made of text is the field that holds the information
44. e then humanity has come a very long way and yesterday s telephones paper letters and telegrams are today s smartphones e mails and content sharing applications For a person taking on any type of education it is of the utmost importance that they are able to access lots of information in the smallest window of time VIA University College is the place where every year thousands of students finish their education and are ready to meet their opportunities in the world That wouldn t be possible if a thing like the Studienet did not exist It is the number one place for a student attending the VIA University College It is the hub that contains all of the materials presentations examples and announcements that are essential to the student for his or her education Up until now it has only been available as a web based solution With today s fast paced evolution of technology and the growing mobile user demand it comes to mind that we have to step it up a notch The problem with today s web based solution showing on figure 1 of the Studienet is that it is optimized to be accessed only from a computer But what happens when someone wants to access it while they are running some errands and are outside in the city somewhere Looking at your small smartphone screen that is trying to fit a full sized webpage is not just frustrating to look at but also irritating to use Missing to read an important e mail in time or to notice an important
45. ecided to use JSON One more possibility was to use XML but since we are using a mobile device for receiving or sending the data JSON is the better choice because it is more compact On figure 30 you can see the difference in size of a message sent using JSON and the same message sent using XML JSON message JSONDataResult You entered Hello world XML message lt XMLDataResponse xmln3 http tempuri org gt lt XMLDataRBesult gt You entered Hello vworladr XMLDataBesult gt lt XMLDataResponse gt 1 Figure 30 Size comparison between JSON message and XML message When not connected to a WiFi network users of mobile devices almost always use mobile data connection to connect to the internet on their devices This mobile data connection always has some kind of restriction to how much data the user can access per month By using JSON in our application we substantially decrease the amount of data that needs to be transferred 7 IIS IIS Internet Information Services is a tool that allows us to publish and distribute our WCF service through the internet so that devices that use the Mobile Studienet can connect to the database and receive information through that service IIS is a virtual directory that hosts our service and allows it to be visible to other devices not just the server that is hosting it That way no matter where a user is if they have any sort of internet connection weather it is through WiFi hotspot o
46. ee er ee 4 Appendix 1 Document references 1 64 Appendix 2 Detailed use case diagram description 66 Appendix 3 User manual for the Mobile Studienet systeme anwvnnnvnnnvnnnvnnnennneenee 68 Figure 1 Web version of Studienet viewed from a laptop at full D Figure 2 Web version of Studienet viewed through a mobile device at full screen 5 Figure 3 Survey results for question number ONE 6 cc cece cece cece cence ee ceesceeeceeeceeecees 8 Figure 4 Survey results for question number tWO 0 ccc ce cece ccc eee cee ceeeceeeceeeceeeceeecees 9 Figure 5 Survey results for question number three cece ccc eee cece cece cee ceeeceeeceeecees 9 Figure 6 Survey results for question number four 10 Figure 7 Program announcements section aar 12 Fiore S Emal SCCO Sa 12 FRUE COUFSeS SEA ae 13 Figure 10 Course 8 00666 5 9 13 Figure 11 Session plan section Lises Teaser 13 Figure 12 Session material 14 Figure 13 Mobile Studienet use case diagram 15 Figure 14 The Event sack screen of the 0018000 16 Figure 15 Detailed event information screen ssssssssscesceseeseesessceseeseeseeseeseeeeeo 16 Figure 16 Android email client synchronized with VIA 17 Figure 17 Notifications of the Mobile Studienet application 17 Figure 18 Program announcements section of the Mobile 18 Figure 19 Calendar Sre
47. elation database diagram introduced earlier in this report we can see that it looks almost identical except that this diagram has a bit different information in it bearing in mind that it is describing the model classes whilst the ER diagram describes database tables lt lt interface gt gt IStudienetService EntityFrameworkModels StudienetService Figure 38 An abstract class diagram of the WCF service project Admin Panel Studienet Admin Panel plan Manager Event Manager ID 56 Date and time 24 12 2013 20 00 Posted by EN Tithe Christmas eve party at VIA Text Lets celebrate Christmas together VIA and DSR are organing the biggest chnstmas 1D 57 Date and time 13 12 2013 12 00 Posted by IHA Title Bachelor project deadline Text The students that are part of the Tth semester ICT Engineering are supposed to hand in tH 1D 58 Date and time 05 12 2013 08 20 Posted by IHA Title MOBIZ Examination date Text This is the examination date for the MOBI2 course Please be prepared to present your proj ID 96 Date and time 23 01 2014 09 00 Posted by IHA Title ICT field trip to the LEGO factory Text On the 11th of February we will go to the LEGO factory To sign up for the trip conti BB Fm Add Remove Figure 39 Admin panel event manager Page 41 For easy management of the data that is to be entered and manipulated in the database we created a very simple program called the Ad
48. em sonrie ro eree EE PSN 18 Fedre 20 Detailed dally SCHECUNG E 19 Figure 21 The screen showing all the courses the student participates in e00ee 19 Fiure 22 SESSION Plan STEEN AJN SA 20 Figure 23 Course announcements SCreenN a nawvannvnnnnnnvnnnnnunnnnnnnnnnnnnnnnunnnunnnnnnenenen 20 Figure 24 Course INO SChECN are 20 Figure 25 Screen enlisting all teachers and students participating in the course 20 Figure 26 State chart map of the Mobile Studienet 21 Figure 27 Abstract ER model diagram of 6 21 Figure 28 User interface comparison illustration between the Google Play Store and the Mobile studienet applications sssesseesoesceesceesoesceesoreceesceesosecessceesoreceesoeeseseoe 23 Figure 29 URL link of the web version of 001666 2 25 Figure 30 Size comparison between JSON message and XML 2 Figure 31 Mobile Studienet system architecture nnunnnuvnnunnnuvnnuvnnunnnunnnunnnunnneeen 28 Figure 32 Mobile Studienet system 29 Figure 33 Entity Relationship model diagram 30 Figure 34 Model View Controller 0 0 38 Page 3 WCF service Figure 36 Figure 37 Entity Framework model 5566 Entity Framework model diagram An abstract class diagram
49. enerated number eventID foreign key to the EventTable it shows which event is valid for which student studentID foreign key to the StudentTable represents the student that this event applies to This table represents the link between the EventTable and StudentTable It works in such a way that it allows a student to be notified about many events at once and at the same time one event to be applicable to many students The SessionMaterialTable At last comes the session material table its intention was that it will hold all of the presentations examples and documents the teachers upload to Studienet The reason it is marked with red is that we decided to leave out this functionality from the scope of the project due to insufficient time It is left in the diagram though to indicate that it is an object of further improvement to the current state of the Mobile Studienet WCF service and Entity Framework For the web service connection between the client Android application and the server we chose to use a WCF Visual Studio project We had a couple of other contenders for the job one of them was an ASP project and the third one was MVC project Here are mentioned all of the descriptions of the different projects and the reasons we chose WCF instead of the others Page 36 1 WCF project Windows Communication Foundation WCF is a framework for building service oriented applications Using WCF you can send data as asy
50. ents of the system This allows for the tester to use the system in such a way like he would use it in his everyday life This will test the system in the way it is meant to be used Mostly in this type of testing there shouldn t be much errors to report but no one ever knows where the bugs are hiding Test Case Input Application Test Case Output BLACK BOX TESTING APPROACH Figure 65 Black box testing Page 62 That s why in our case for the Mobile Studienet we invited some friends over which are also Students at VIA to test the application as normal users We installed the application on bunch of android devices with different hardware specifications CPUs display resolutions RAM memory etc and gave them a hands on with the system They used the Mobile Studienet system like a normal student would and tried out every possible functionality we have incorporated in it With a thorough use of the system together we all managed to find a couple of more errors and text typos but overall the system was functioning fine and with no hiccups Discussion During the project period we have successfully managed to implement all of the main requirements for the Mobile Studienet system but since we had limited timeframe the system still has a very big potential of improving Possible improvements in the android application We can further improve the information processing algorithms that receive and decode the data from the se
51. ever new UpdateReciever 139 IntentFilter intentFilter new IntentFilter 146 intentFilter addAction UPDATE 4 141 repisterReceiver updateReciever intentFilter 142 serviceIntent new Intent MainMenuActivity this PollingService class 143 startService servicelIntent 144 Figure 60 MainMenuActivity onCreate method Starting the PollingService happens in the onCreate method of the MainMenuActivity In Android every Activity has an onCreate method which is executed when the activity is Started Initialization is a common thing to do in the onCreate of an activity and considered a good practice in Android development Taking a deeper look in what happens within the method we notice the setContentViewl method which basically sets the graphical layout for the activity The argument the method takes is an integer which represents an address in memory pointing to the place where this layout is stored Next is the initializeLists a method that initializes several ArralyLists which later will be used for holding the data objects received from the PollingService In order for the MainMenuActivity to be able to receive Intent objects from the PollingService it needs to listen somehow for new incoming Intent objects One of the best practices to do so is by using Android s BroadcastReceiver class because it has a more secure way of transferring the data In our case we have an UpdateReceiver cla
52. f our team members gave a very interesting idea He noted that every Android powered device has the Google Play Store 3 application This means that every user that has an Android device is more than accustomed to the store And he proposed that we should use a user interface design similar to that of the Google Play Store That way everyone that will use the Mobile Studienet will know how to use it from the very Page 22 Start making it very user friendly and comfortable Such a good idea just cannot be missed and the team immediately agreed on this gt Apps Q TOP PAID TOP FREE TOP GROSSING This is the examination date for the MOBI2 course Please 05 12 2013 08 20 Bachelor project deadline The students that are part of the 7th semester ICT met Z Z013 12 00 Christmas eve party at VIA Lets celebrate Christmas together VIA and DSR are 24 12 2013 20 00 22 99 KR 2 Minecraft Pocket Edition v XAXA 42 00 KR 3 Endomondo Sports Tracker v E 29 00 KR 4 Wordfeud Yo 16 00 KR 5 Titanium Backup PRO Key kk kk 34 99 KR 6 Nova Launcher Prime KKK PINNA KR SwiftKey Figure 28 User interface comparison illustration between the Google Play Store and the Mobile studienet applications This illustration describes how we got inspired by the design of the Google Play Store and how we incorporated the same user interface into our application Making the design of the Mobile Stu
53. f the waiting period we collected the data with the results from the survey and we saw that the total amount of people that answered was 67 Here are the questions and results for each one of them Question number one How satisfied are you with the current version of Studienet The results were showing that the majority of the students found the web version of the system to be somewhat satisfactory How satisfied are you with the current version of studinet 47 76 20 9 7 Je Dr 1 Very satisfied Satisfied I m Ok Dissatisfied Totally dissatisfied 17 91 0 Fir 45 0 Figure 3 Survey results for question number one That alone meant that the web solution was lacking behind at some aspects and was yet another proof that a mobile solution could fill in the gaps where the web version failed Question number two How do you feel about having a mobile Studienet application in the future Here the question is pretty straight forward and so are the results It definitely seems that the students of VIA University College are going to appreciate having an application as their personal assistant for the Studienet Page 8 of times chosen How do you feel about having a mobile studienet application in the future 53 73 22 39 2 99 Very good Good It s Ok Bad Very bad 60 50 30 20 0 Figure 4 Survey results for question number two Question number three What is your phone s
54. ght of what more can be added to the system Because the answers are too many and some of them repetitive or too long we are going to sum up the main proposals Here are Page 10 of times chosen some of the answers the students gave us which were different from the ideas that we presented The system needs to be accessible to older versions of Android so that there are no restrictions to using it A reminder for the events deadlines etc for example one day before the actual event Timetable for classes and the rooms where the classes are going to be held Notifications about canceled lectures Stads log in availability Access to Studienet materials A fluent and user friendly interface To conclude our observations from the survey we managed to set our sights on a target platform we managed to confirm that the idea for having a mobile Studienet application is a welcoming thought to the students and we managed to receive even more good ideas from the them that will contribute to the development of the system Technical analytics For further analysis and development of the Mobile Studienet our team had to figure out how the current website version operated and what was the logic behind the scenes For that to happen we had to contact a person that is either involved in supporting the current version or either a person that is in charge of management of the Studienet When we reached out to talk with a representative i
55. he most important based on EVENT STACK COURSES our priorities It is because the events section will hold the most important information for the students and Bachelor project deadline it is the most important feature the Mobile Studienet The bachelor project deadline is has The Event stack will have all of the events listed on the 13th of December If you MobileStudienet by the order of their due date which means the 13 12 2013 12 00 closest events to come will be on top of the list for Er the students to notice Christmas eve party at VIA Lets celebrate Christmas together VIA and DSR are 24 12 2013 20 00 MOBI2 examination date This is the MOBI2 examination date Please be prepared to 16 01 2014 10 00 Bachelor project deadline ICT Engineering field trip 13 12 2013 12 00 ta tha I EON faatans Figure 14 The Event sack screen of The bachelor project deadline is on the the application 13th of December If you fail to upload your projects in time you will not pass the course Another thing is that every event is going to be Ib Havn selectable and when a user selects it he will be presented with a new screen that will show all of the event information along with the date and time and the person that made this event Figure 15 Detailed event information screen Page 16 Notifications Io 7 iDEN ed All users will be kept in sync with the latest information by notifications from the appli
56. his was yet another thing to point at the fact that the VIA institution is closely related to the Microsoft Corporation And the final thing we noticed which didn t take much time to figure out was to look at the web page URL link This by itself shouldn t mean much but in our case it was the proof that converted our assumptions to facts https studienet via dk sites uddannelse ict Horsens Pages defaulfaspx Figure 29 URL link of the web version of Studienet The suffix aspx to the link you see there on figure 29 actually represents the format of a webpage developed in ASP NET 5 It is a web technology that is developed by Microsoft This observation proves that Studienet is indeed using Microsoft technologies From these observations our team reached the conclusion that we should use Microsoft technologies when we develop the backend server for the Mobile Studienet Development tools 1 C programming language The C programming language is Microsoft oriented and is supported by all Microsoft technologies out there It is a very easy to learn and user friendly programming language It is very good for creating all kinds of Microsoft related web based solutions and at the same time to manage databases and process data That s why it was the best choice in our case 2 Visual Studio 2012 Visual Studio 2012 is an official Microsoft product and was our choice for the backend development environment It is mainly
57. ienet main menu This intent object is used for starting the other activities screens The intent object contains the names of the current activity the activity that we want to navigate to and also can contain some data to be passed to the activity we want to go to Upon a click event for example when a user clicks on a specific course from the course list the new screen starts the screen corresponding to the clicked course and gets the Intent object that is sent from the previous activity From this object can be extracted all of the information that the second activity might need for example the course announcements session plan course info and participants list All of the data management for the Intent object is done in the MainMenuActivity For the sake of making the class diagram more readable the intent object is displayed only between the LoginAtivity and the MainMenuActivity All of the other activities communicate with each other using an intent object as well each dotted line represents a relation using an intent object CourseActivity class This is the activity which is started when the user clicks on a specific course from the courses list in the MainMenuActivity The CourseActivity gets an Intent object from the previous activity holding information to populate the sections Course announcements session plan Course info and Participants Each of them has its own section tab which can be seen in figure 46 Page
58. k before we made sure that the connection functions properly between the device and the server White box testing Along with the general testing we did during the implementation phase of the project we also incorporated white box and black box tests on the system The white box testing is a special type of testing where the people that are performing the tests on the system have deep knowledge of it and its internal workings This is usually done by the people who have designed the system themselves Application Code Test Case Input Test Case Output WHITE BOX TESTING APPROACH Figure 62 White box testing In our case almost at the end of our implementation we started focusing on the final testing of the product The first type of tests we did was of the white box type We started carefully going through our code and one by one we tested every function of our code to see how it processes the input and what output it gives back This way we analyzed if the function has potential weak points and fixed them if we found any Also by doing this when going through the code sometimes we even found better ways to improve our algorithms Page 60 This type of testing not only allowed us to fix errors but even to refine our strategies of the system functionality Of course after changing something we also had to test the rest of the functionality again because sometimes when fixing an error it can make a working part of the code fa
59. lding a number with the length of ten digits and is intended to hold the students social security number class is a field represented by one character either X Y or Z for distinguishing in which class the student is participating The students table is made to support every information the Mobile Studienet could need for managing the data about the student It is based on our reverse engineering observations made earlier The ProgramTable Fields id primary key it is represented by a uniquely auto generated number programName is the name of the study program for example ICT Engineering The program is pretty simple just like the RoleTable It has only two fields one representing the unique ID of the program entry in the database and the other is the program itself The ProgramAnnouncementsTable Fields id primary key it is represented by a uniquely auto generated number dateAndTime it represents the exact date and time the program announcement was created or edited to the Studienet system title this field holds the information concerning the title of the announcement text is the actual body of the text of the announcement It holds the main information programID foreign key to the ProgramTable is a reference to which program is this announcement intended for staffID foreign key to the StaffTable it shows who actually added this announcement This is the table in the databas
60. m to retrieve the data This was due to technical issues which were beyond our control In order to use the Google Cloud Messaging we had to have our server exposed to the Internet However we did not manage to achieve that because we were unable to configure the local wireless router with the correct settings due to the lack of the access credentials We are aware though that the push mechanism is superior to the polling one which we were forced to implement in our solution The polling mechanism in our system is managed by the PollingService class Every N minutes the polling service fetches the data from the backend in a JSON format and unpacks it so it is readable by the application The unpacking of the data is done with the help of the model classes Event ProgramAnnouncement CourseAnnouncement Student Schedule StaffEmployee and SessionPlan Once the unpacking is done the service compares the new data to the current data on the device If there are new or updated entries the service fires up a notification so the user is made aware of the new information Next the service sends the latest data to the MainMenuActivity which updates the user interface of the application MainMenuActivity class In order for the user to start using the application they have to MobileStudienet log in successfully with a viable VIA student account Only after a successful log in will they be able to enter the main menu of the Mobile Studienet see
61. min Panel shown on figure 39 We made it as simple as possible as we could in order to incorporate every CRUD operation for every table that we have in the database CRUD operations Create Read Update and Delete are the types of operations that are applicable to any database in order to manipulate its contents The main reason we created this Admin Panel is just to make the data insertion in the database faster and save time for implementation of the Mobile Studienet system as a whole we On figure 40 is depicted the most important feature to the Mobile Studienet system It shows how 3 me 11 2014 09 8 00 Date and time joo 0 events are created An event has Applies to O Program Course Student e Date and time this is the point in ICT Engineering time when the event is about to take place ICT field trip to the LEGO factory On the 11th of February we will go to the LEGO e Applies to radio buttons these factory To sign up for the trip contact Mona radio buttons allow the wizard to Wendel Anderer distinguish who the event will be applicable to It can be applied to a whole program of students to a specific course that students are participating in or to a single student if the event is intended only for one student for example a re examination date Sender Figure 40 This is the Add Event window of the Admin Panel 1 program e Title this field specifies what the title of the event will say
62. ming between lectures 10 15 11 00 Advanced NET Programming 11 05 11 50 Advanced NET Programming 14 30 15 15 Mobile Connectivity 15 20 16 05 Mobile Connectivity 1 0 10 55 Mobile Connectivity Courses and course information Figure 20 Detailed daily schedule MobileStudienet EVENT STACK COURSES ANNOUNCEMEN Bachelor Project Another piece of information that will be available is all ITHS BPRI2 A1 3 the courses that the user is enlisted for After selecting a specific course the user will be able to see the course Advanced NET announcements course description session plan Programming teachers and students list for it ITHS DNPI2 A1 3 Mobile Connectivity ITHS MOBI2 A13 Software Devellopment in Java ITHS SDJIT A13 Figure 21 The screen showing all the courses the student participates in Page 19 Advanced NET Programming NOUNCEMENTS SESSION PLAN COURSE INFO Topics Writing LINQ querries Preparation Look at the tutorial PDF file that have uploaded in the session material section Topics WCF service projects Preparation Please read pages 145 167 from the course book before the lecture Topics WPF and data binding Dranaratian Figure 22 Session plan screen Advanced NET Programming SESSION PLAN COURSE INFO PARTICIPANS The purpose of the course is to learn advanced features of the C programming language and NET technologies Figure 24 Course
63. n charge of the current system we discussed the opportunity and if we will be granted the permission to operate on the current system Unfortunately due to lack of experience on our side and the system containing a lot of confidential information we were denied the access to any kind of interaction with the current version of Studienet Failing to acquire this vital resource for our development of the mobile application however did not mean that we were left clueless about the situation To solve the issue our team had a meeting with the team supervisor for this project We had a discussion and agreed that we have to implement our own version of the system This version of Studienet had to be as close to the real one as possible in order to suffice our intentions of creating the needed functionality The only way for that to happen was to try and reverse engineer 2 the current system only by looking at its exposed part to the user namely the user interface Page 11 Reverse engineering is not an easy task because during the process a lot of information could be misinterpreted or even omitted by the person who is doing it The technique for implementing such a tactic is very hard and should be treated with great amounts of attention and open mindedness After getting the task in hand our team went very slowly through every scenario a student could experience when using the Studienet website We created a list of all things a student
64. n on figure 45 The main menu of the application is represented by the MainMenuActivity class In Android every Activity class represents a separate screen in XXXXXXQviauc dk an application el The MainMenuActivity class contains references to the user interface sections tabs which hold the relevant information for the currently logged in student These user interface sections tabs consist of Events Program announcements Courses Schedule Course announcements Session plan Course info and Participants When new information is received from the server the MainMenuActivity class updates these sections so that they display the latest data Another major role of the MainMenuActivity is to manage the data of the application between the other activities In Android communication between different activities happens through an Intent object Figure 44 Log in screen Page 46 MobileStudienet MobileStudienet EVENT STACK COURSES NOUNCEMENTS CALENDAR Bachelor project deadline December 2013 The bachelor project deadline is S M T W T F on the 13th of December Ifyou 49 a 13 12 2013 12 00 59 MITT i 1 Christmas eve party at 51 VIA 52 Lets celebrate Christmas together VIA and DSR are 24 12 2013 20 00 MOBI2 examination date This is the MOBI2 examination date Please be prepared to 16 01 2014 10 00 ICT Engineering field trip ta tha I EON faatans View Schedule Figure 45 Mobile Stud
65. nchronous messages from one service endpoint to another A service endpoint can be part of a continuously available service hosted by IIS or it can be a service hosted in an application An endpoint can be a client of a service that requests data from a service endpoint The messages can be as simple as a single character or word sent as XML or as complex as a stream of binary data 2 ASP NET project ASP NET is a server side web application framework designed for web development to produce dynamic web pages It was developed by Microsoft to allow programmers to build dynamic web sites web applications and web services 3 MVC project Model view controller MVC is a software pattern for implementing user interfaces It divides a given software application into three interconnected parts so as to separate internal representations of information from the ways that information is presented to or accepted from the user The central component the model consists of application data business rules logic and functions A view can be any output representation of information such as a chart or a diagram Multiple views of the same information are possible such as a bar chart for management and a tabular view for accountants The third part the controller accepts input and converts it to commands for the model or view The reason we used WCF over ASP is because as stated above WCF allows for binding to the server using different types of c
66. nu Page 72 MobileStudienet EVENT STACK COURSES ANNOUNCEMEN Bachelor Project ITHS BPRI2 A13 Advanced NET Programming ITHS DNPI2 A13 Mobile Connectivity ITHS MOBI2 A13 Software Devellopment in Java ITHS SDJI1 A13 Figure 74 Main menu courses tab
67. o alias a three or four letter representation of the person s name used in the VIA email i e IHA amp viauc dk or when a staff member uploads some information to the Studienet and the alias can be seen next to the material they have uploaded like a signature rolelD foreign key to the RoleTable it references the type of privilege this staff member account has In general this table holds every information that a staff member may need when using or managing the Studienet system They will be able to access it with their credentials username and password and depending on the role they have been assigned they will have no or some limitations to what they can do with the system The StudentsTable Fields id primary key it is represented by a uniquely auto generated number studentNo is the unique student identification number in the VIA Studienet system It is also used as the student s username when logging in the system Also it is used to determine what will be the student s email address for example 142323 viauc dk password is the second part of the student s credentials that the student will use to log in the Mobile Studienet programID foreign key to the ProgramTable it shows which program the student is enrolled in name is the field that holds the students full name Page 31 gender is a field represented by one character either M or F for male or female cpr this is a field ho
68. ogram or biological chemical or organic matter and analyzing its components and workings in detail for either purposes of maintenance or to support creation of a new device or program that Page 64 does the same thing without using or simply duplicating without understanding the original Original article http en wikipedia org wiki Reverse_engineering 3 The Google Play Store is an application that is installed by default into every Android powered smartphone It is the marketplace from which a user can download all kinds of applications music and books to his or her device 4 ASP NET is a technology included in the Microsoft NET software package This package is a framework that is needed to create and run programs that are written in the C language It also contains a lot of other technologies like the WCF project we are using and the Entity Framework that is connecting our database and the WCF service Original article http en wikipedia org wiki NET Framework 5 SQL Injection is a way for someone with malicious intentions that is using the application to try and write SQL code in input fields that can harm the database or the entire system Original article http en wikipedia org wiki SQL injection 6 White box testing original article http en wikipedia org wiki White box testing 7 Black box testing original article http en wikipedia org wiki Black box testing Page 65 Appendix 2 Detailed us
69. on and to add to it all we had our analysis and research to back things up Now we know what we need to do and it is time to Start incorporating all of these ideas we made earlier to create the Mobile Studienet Tools and technologies This section of the report describes all of the technologies used to create the Mobile Studienet application and re create the Studienet backend infrastructure It is also argued between different types of solutions for the different problems we faced and explained what made us pick the right choices The backend Since we had no idea of what the backend looked like and how it operated behind the scenes we were forced to observe and analyze the Studienet webpage in order to try and guess what its semantics were That meant we had to choose all of the technologies to support out version almost blindfolded and we mean almost because it wasn t quite like we didn t have any clues to it Page 24 Here is what we managed to conclude based on our observations Being a student at VIA you are granted a special Microsoft DreamSpark account This account grants students access to paid Microsoft software development tools and material for free That meant that the VIA University College must have some kind of professional relationship or contract with Microsoft representatives Another thing we noted was that the Email solution that VIA uses for their students is a web based version of Microsoft Outlook T
70. on is a computer loading the web page EF rver Database CF MS SQL Client Android Tier 3 Tier 2 Tier 1 Figure 31 Mobile Studienet system architecture Se W Page 28 connects to DB through EF LE receives data W Figure 32 Mobile Studienet system workflow The workflow of the Mobile Studienet system goes like this Whenever there is a change in information or a new information added the mobile application will send a request to the server to ask for that information The smartphone makes the request through the WCF web service which is available through the network The server which is on the other side of the network receives that request and processes it Then it contacts the database through the Entity Framework to ask for the new information The database queries the data and returns it through the server again through the Entity Framework Then the server creates a response containing the information and sends it back through the WCF service When the response reaches the Android smartphone the application unpacks the response and displays the data to the user The backend The backend of the Mobile Studienet consists of the Server hosting the WCF service and the Microsoft SQL database In our case right now the server and the database are both installed on the same computer which means that the second and third tier are combined into one physical server machine Database design Th
71. onnections at the same time like HTTP TCP or UDP whereas ASP allows connections over the HTTP protocol If we had chosen ASP for the connection things like file transfer which uses TCP connection for the session material data for the Mobile Studienet application would have been impossible Even though we haven t implemented the functionality for it we have to be prepared to implement it in the future Page 37 MVC is a type of project that is comprised of three parts Information storage part Model which stored different types of data that is useful for the user Information management part Controller which manipulates the data that is 7 Stored in the Model part And a part that presents Change something the manipulated data to the user View Usually ul the view is comprised of some type of user ia interface that the user can interact with either co to view some graphics enter information into the r 4 system or read information pr Show next Valle view Basically the MVC project would have done the TER same job as the WCF project in our case because it can support web services but we did not go ERA with it for one reason only and that is because it From the View has the View part Although we have a View that the user can interact with it is at the Client side Figure 34 Model View Controller workflow of the system which is in the Android part A good choice of a MVC project wo
72. r mobile data internet they can access the Mobile Studienet server and see the information they need The frontend 1 JAVA programming language The JAVA programming language is the native programming language used by all developers around the world for developing Android applications Do we need any more reasons to use it Page 27 2 Android SDK The Android Software Development Kit is the framework that provides a developer with the necessary programming libraries in order for him to develop mobile applications 3 Eclipse Eclipse is an open source development environment that is used mainly for development of JAVA programs It can also be used to develop in other programming languages but JAVA is what we are looking for When it comes to Eclipse it is the most popular programming environment and this is because using it is the most convenient way to develop Android software with the JAVA language Design and architecture System architecture Mobile Studienet has the three tier client server system architecture because it is comprised of a database storing all of the information tier one a server hosting the service that can be accessed over the network tier two and a client that connects to the server through the network tier three It works the same way as the normal Studienet website but the difference is that at the client side in the mobile version sits a smartphone whereas at the client side of the web versi
73. re contains the number and it will extract it and use it as the argument to the function The above function however is just an abstract version of the function in figure 54 it depicts only what the function header looks like but does not have a body It is used like a link to the real function The function in figure 54 however has the body and that is the code that will get executed when the client uses the signature above Page 53 public List lt EventTable gt GetAllEventsForStudent string id L try L int studentId Convert Tolnt32 id using MobileStudienetEntities entities new MobileStudienetEntities I L return entities EventStudentBTs Where s gt s studentID studentId Select i gt 1 EventTable ToList row new Exceptio Al Figure 54 Full GetAllEventsForStudent function When this function already has the unique id of the student that wants to see his events it uses it to search in the database table EventStudentBT through the Entity Framework It gets all of the events identification numbers that are associated to this student Then it uses these identification numbers to find the full event information from the EventTable in the database And then when it has all of the event information it returns it to the client in the form of a list of events The client uses the same technique when it comes to getting the rest of the information it needs The only difference is the signature
74. report from a program crash 2 001010 SDK 0266100 eee Figure 65 Figure 66 Figure 67 Default android email application Main menu courses tab Courses menu Figure 35 Figure 38 Figure 39 Figure 40 Figure 41 Figure 42 Figure 43 Figure 45 Figure 46 Figure 48 Figure 50 Figure 51 Figure 53 Figure 55 Figure 57 Figure 58 Figure 60 Figure 61 Figure 62 Figure 63 Figure 64 Figure 68 Figure 70 Figure 71 Figure 72 Figure 73 Figure 4 Figure 75 Abstract This documentation includes detailed information concerning all of the stages of development of the Mobile Studienet system and its design The Mobile Studienet system s role is to get the important information from the current web based solution and present it to the end user in a manner suitable for mobile devices It is aimed to provide an on the go way for the students of VIA University College to access their educational information and improve their overall awareness of the subjects Any user of this system should be able to access his or hers announcements for the program and the courses he or she is enlisted to Users will also be able to see the most up to date information for specific topics receive important notifications and manage their university e mail account through their mobile device Introduction Telephones paper letters and telegrams were once world s strongest and most powerful way of communication Sinc
75. rver The user interface can be improved even further for even better looks and user friendliness For example we can implement user settings where the user will be able to choose the sound tone for the notifications or for which things to receive notifications etc In the future we could make so that the student will be able to change his or hers password through the mobile application Possible improvements in the server side We could make a more sophisticated admin panel which would be able to show the information in a more structured way and maybe incorporate log in function as well It will be possible to improve the management of information and to make it easier to insert or to edit Improvements in general to the system Future Stads access so that the students can track their grades Page 63 The Mobile Studienet can be developed for other operating systems like iOS for Apple smart phones or Windows Mobile for Windows powered devices The system can be made to support different languages so that the users can select their native languages if they prefer We can improve the application so to support the session materials section of the Studienet so that the users will also be able to view the materials their teachers upload Conclusion In conclusion to this project we can proudly say that the requirements for the Mobile Studienet system has been successfully met and the system is fully functional at its c
76. s Electromagnetic radiation Modulation and demodulation Figure 11 Session plan section week35 plan MainActivity wednesdayweek36 BluetoothServer tar BluetoothClient EchoServer BluetoothClientv2 wednesdayweek38 SerialConnector tar UARTRecever week 35 week 35 week 35 week 36 week 36 week 36 week 36 week 36 week 38 week 38 week 38 Session Date 8 28 2013 3 Ee Wednesday 28 08 2013 Wednesday 28 08 2013 Wednesday 28 08 2013 Session Date 9 4 2013 5 Te Wednesday 04 09 2013 Wednesday 04 09 2013 J Wednesday 04 09 2013 Wednesday 04 09 2013 Wednesday 04 09 2013 Session Date 9 18 2013 3 Wednesday 18 09 2013 J Wednesday 18 09 2013 J Wednesday 18 09 2013 Figure 12 Session material section And last but not least comes in the session material section Here is the place where all of the teachers presentations exercises examples lectures and guides are uploaded From here every student can download and view the things they need Basing our conclusions on the survey and the analysis of the web version of the Studienet system we have prioritized our tasks and combined them into one big use case diagram depicting all of the scenarios a user will be able to do with the application Requirements and use case description This use case diagram specifies all of the requirements to the project and describes all of the actions that will
77. s that it uses to call the functions in the web service and the model classes the WCF service uses in order to access the information from the database Fail proofing Things can always go wrong with software that s why we had to incorporate a lot of fail checks If we did not do that sometimes the system crashed was unable to work properly or was not producing the right data The checks are represented by message boxes that pop up if the conditions are not right CPR already exist 5 thatn 6 characte 17 Warning MessageBoxButton OK Messa Figure 55 Message boxes for different warning scenarios Page 54 One of the most common checks we did was to check if some fields of the Admin Panel wizards are empty and notify the staff member That way there would be no empty entries in the database and the system will be clean of bad data We also incorporated other types of checks A Some of the fields are empty For example the student number that is given to students when they are entered into the system must be exactly 6 numbers long i e 142323 The Same goes when they are given the CPR number which must be exactly 10 numbers long Figure 56 Empty fields warning Another check we have is that the student numbers must contain only numbers and no characters We are also checking that the password to their accounts cannot be less than 6 characters because then the security is much worse Figure 58 Student
78. ss that extends BroadcastReceiver and is used for consuming the incoming Intent objects from the PollingService In order for the UpdateReceiver to know which Intents to consume it s given an IntentFilter as a parameter with a specific action in our case that is UPDATE So what does this actually mean It means that the receiver will accept Intent objects which have the Same action as the receiver pretty much filtering what we want to receive After this is done the receiver is registered to the MainMenuActivity by the registerReceiver method that takes the actual receiver and the IntentFilter as parameters Now that the MainMenuActivity is setup and prepared to receive Intent objects from the PollingService we can actually start the PollingService itself That is done by the servicelntent which specifies the start and endpoint of the action that is about to take place Page 57 notice that it takes the MainMenuActivity this and PollingService class as parameters so when the startService method is called it knows what service to start Fetching and comparing data from the backend 1235 Override 124 public int onStartCommand Intent intent int flags int startId I 135 ClearNotificationsReceiever receiver new ClearNotificationsReceiever 126 IntentFilter intenFilter new IntentFilter 127 intenFilter addAction clear 128 registerReceiver receiver intenFilter 129 updatedEventIds new ArrayList lt Integer gt 138
79. t list of all program announcements will also be available depending in which program is the student participating When an announcement is available the user will also be notified about it with notification just like for the events And of course detailed information will be available when the user selects a specific program announcement also like in the events section Bookshop discounts There will be 10 discount on all ICT books in the booshop in 1112 2013 15 16 Free VIA logo T shirts giveaway VIA ICT has made special T shirts for all ICT students If you 2712 2013 20 23 Calendar and schedule MobileStudienet NOUNCEMENTS CALENDAR Figure 18 Program announcements section of the December 2013 Mobile Studienet 5 M 1 W T F 5 49 The calendar screen will provide the user with 51 information about their classes agenda and will show on 59 which days the student has lectures View Schedule Figure 19 Calendar screen Page 18 Ge Every date square on the calendar will be selectable When a student clicks on a specific date a new screen will pop 12 12 2013 up and will show the day s agenda for all lectures of every 08 20 09 05 course the student is signed up for It will be represented as a Advanced NET Programming list of the names of the courses and the time frame with the 09 10 09 55 start and end time of each lecture illustrating also the breaks Advanced NET Program
80. t staffID is the staff member who created the event dateAndTimeModified is the field that stores the date and time of when the event was created or last updated The EventsTable along with the two announcements tables is one of the most important pieces of the Mobile Studienet because the notifications that our application will provide to the students will be because of these three tables The StaffProgramBT Bridge Table Fields id primary key it is represented by a uniquely auto generated number Page 34 staffID foreign key to the StaffTable it shows who of the staff members is managing the program programID foreign key to the ProgramTable it represents the program that the staff member participates in The StaffProgram bridge table is the link we create between the StaffTable and Program tables This is because we have the knowledge that many staff members can manage the Same program but at the same time one staff can manage many courses at once The StaffCourseBT Bridge Table Fields id primary key it is represented by a uniquely auto generated number staffID foreign key to the StaffTable it shows who of the staff members is responsible to teach a certain course courselD foreign key represents the course that is taught by the staff member The StaffCourse bridge table is the link between the StaffTable and CourseTable It represents the many to many link in such a way that one staff mem
81. t not this one for some reason Next some ArrayLists are initialized which will be used for holding id values of some particular entry objects necessary for the comparison logic Assuming this is the first time the service is started connect execute is called so it can make the very first initial fetch of data from the server and send it to the MainMenuActivity All of that happens in the connect execute and it s necessary for the logic to work because without that initial fetch we won t have any current data to compare to the latest data The next step is to initialize our update thread that will be doing all the fetching every N minutes The run method of the thread is what is executed when the thread is actually started So let s take a closer look behind the way the thread is constructed First we call the getLatestEvents method In it we fetch the latest events from the backend server 3 JSON format and unpack it in the Event model class Once the latest event data is stored in the client application using the Event model class we can compare it with the current event data That happens in the checkEvents method Three are the possible outcomes of this method a It finds new or updated events fires the notification and sets the hasEventChanged flag to true Because the hasEventChanged flag is set to true the latest events are sent to the MainMenuActivity with the sendLatestEvents method b No new or updated events found
82. tainly recognize within minutes if not even right away E mail management on the go is another big plus to the users Let s say a student receives an e mail from a teacher concerning a project report that needs to be improved in order to fulfill the basic requirements but the student is busy with some other task that needs his attention and forgets to check his e mail That could as well mean that he can fail at an exam Being notified on the spot can save a lot of headaches don t you think By analyzing the ordinary habits of an average university student and how they go about using the web version of Studienet this shed some insight of what the mobile application should consist of and look like The next step of our analysis of the matter was to construct a rough list of some of the main features we think would be essential to the product List of features based on the initial pre development analysis and scenarios e The user should be able to log in to his or hers VIA University College account in the Same way and with the same credentials they use to log into the web version of Studienet This would allow for easy and seamless transition from the web version to the mobile one without making it over complicated e The user will be able to see his or hers day by day schedule based on the courses they are enlisted for That way students will be able to keep track of their schedule and be informed if there are any sudden changes to th
83. that goes into the body of the announcement courselD foreign key to the CourseTable is the reference to which course the announcement was created for staffID foreign key to the StaffTable it shows who made the announcement Fields The course announcements table is almost identical to the program announcements table but the main difference here is that this table holds information about announcements that are specific to a courses not to programs A course announcement will be visible to all students that are enrolled to attending this course The ScheduleTable id primary key it is represented by a uniquely auto generated number lectureStart is a date and time field that shows the date of the lecture and the Start time of it Since the lecture times and breaks for a day are constant from that point on we can calculate the start and end time for all lectures and breaks numberOfLectures is the number of consecutive lectures a course has for the certain date Since the lectures of a certain course always come right after another it is safe to assume that the lectureStart and numberOfLectures fields are enough data to store in order to create the necessary schedule for a given date courselD foreign key to the CourseTable it shows which course does this schedule apply to Fields Schedule table is the table to hold all of the data needed to create a viable schedule for every course It consists of minimum amount of
84. the Visual Studio handles the connections between the program and the database by itself It incorporates better security so that things such as SQL Injection 7 do not work when Entity Framework is used to connect a program and a database WCF Visual Studio project WCF Windows Communication Foundation is a Visual Studio project that is of the web connectivity type It is almost the same as the ASP project type but has a bit more features that we are going to require for our project The main reason why we chose to go with it is that WCF supports multiple transfer protocols such as HTTP TCP and UDP whereas ASP supports only HTTP This multiple protocol support would allow us to transfer not only text but also files This would come in handy when it is time to incorporate the Session Material section of the Mobile Studienet Since we have left it out of the scope of the project we will not use these other protocol types but it is 900d to have them available for future development of the system JSON JSON or JavaScript Object Notation is a text based open standard designed for human readable data interchange It is derived from the JavaScript scripting programming language for representing simple data structures or objects Despite its relationship to JavaScript it is language and platform independent which can be used Page 26 with different technologies Since we needed a proper format for the data we send and receive we d
85. uld have been if along the mobile version of Studienet we had to create also the web version Since the web version already exists and we would want to create only the mobile part we need only the Model and Controller parts that s why choosing MVC would have been an overkill Figure 35 represents the architecture of our service and the elements it has inside In this WCF project there are three main parts that a Studienet ie mp mn Aa do all the job of the backend The first is the IStudienetService cs interface file It is the part that References lt is exposed to the network for the client to connect m Aai se A and contains all of the actions that are available to c Istudienetservice cs the Android client application It contains functions Cale Grut that the client can call and then receive results for packages config the requests it made This interface file is closely StudienetService svec connected to the StudienetService svc file which is 1 Web config the second of the three parts in the project Figure 35 WCF service architecture It contains all of the logic for managing the function calls transforming and saving the information that belongs to our Studienet system In our case it plays the role of the Controller The third and one of the most important parts is the Entity Framework It is created and linked to this project The Entity framework is the link to the database lying underneath the
86. ulty For testing and debugging the code we used the same programming tools that we used to develop the system They have built in debuggers and error reporting features which allowed to fix our code with ease For the backend we used the Visual Studio to tell us what types of errors we had and to suggest how we could fix them The error report on figure 63 shows that there was a problem with deleting an event from the database This could have been only because the event was assigned to one or a number of Students This is because we cannot delete an entry from the database which is being referenced to by other entries public string DeleteEventByld string id Ae f d DbUpdateException was unhandled by user code L An error occurred while updating the entries See the inner exception for details int eventId Convert ToInt32 id Troubleshooting tips using MobileStudienetEntities entities new MobrleStudienetEntities i EventTable table entities EventTables Single fjevent gt event id eventId entities EventTables Remove table Search for more Help Online return Success Exception settings Break when this exception type is user unhandled Actions View Detail Enable editing Copy exception detail to the clipboard Open exception settings Figure 63 Error report from a program crash For the frontend we used a tool called LogCat It is a tool that comes with the Android SDK and basicall
87. ures he has for this date Schedule 12 12 2013 08 20 09 05 Advanced NET Programming 09 10 09 55 Advanced NET Programming 10 15 11 00 Advanced NET Programming 11 05 11 50 Advanced NET Programming 14 30 15 15 Mobile Connectivity 15 20 16 05 Mobile Connectivity 16 10 16 55 Mobile Connectivity Figure 71 Daily schedule screen Page 70 MobileStudienet NOUNCEMENTS CALENDAR December 2013 5 M T W T F 5 49 50 8 9 10 12 13 5 P View Schedule Figure 70 Calendar screen If the user is located on the email tab he will see a button that can redirect him to the default email Android client where he will be able to setup view his VIA mail account Inbox 0 IVA YAIONIT eens aay Yesterday 2 03 12 2013 02 12 2013 01 12 2013 29 11 2013 Figure 73 Default android email application Page 71 MobileStudienet UNCEMENTS CALENDAR Figure 72 Email redirecting screen If the user clicks on one of the courses listed under the courses tab he will be redirected to a new screen consisting of Course announcements Session plan Course info and Participants list 37 we 20 49 Advanced NET Programming ANNOUNCEMENTS SESSION PLAN COURSE Vacation There will not be any lectures 0 week 48 because am going on 12 12 2013 20 25 Example projects have uploaded an archive file with examples of all of the 12 12 2013 20 27 Figure 75 Courses me
88. urrent state We are very satisfied with the results of the system and we believe that if it was to be implemented in reality it would serve a very good purpose to all students of VIA University College During the project period the team managed to learn some new skills and programing technologies At the beginning we did not have all the necessary knowledge but we knew that this was the perfect opportunity to gain some more experience and improve ourselves as developers and at the end we came out to be right We learned a lot in the sphere of Android application development and Microsoft based technologies Overall working towards creating the Mobile Studienet system has been a very fun and fruitful experience We believe that the idea we presented with this project is really good and if you look one last time at the survey results from the students you will see that it is not only we who think so Appendices Appendix 1 Document references 1 FreeOnlineSurveys is a free web solution that allows any user to freely create their desired survey and then distribute it anyway they could possibly want using the internet Official webpage http freeonlinesurveys com 2 Reverse engineering is the process of discovering the technological principles of a device object or system through analysis of its structure function and operation It often involves disassembling something a mechanical device electronic component computer pr
89. whole system When we added the Entity Framework to the WCF project we were asked to point to it which is our database and where is it located on the server machine Then based on the tables created in the database it automatically generated the Entity Framework model classes that correspond to these tables in the database It created the MobileStudienetModel edmx file and this file contains all of the Model classes as seen on Page 38 figure 36 Every model in the collection corresponds to one table of the database which is why there are the same number of model files as there are tables in the database There are also a couple of other files in the Entity Framework generated file but they are responsible for configuration management between the WCF project and the database af MobileStudienetModel edmx 4 MobileStudienetModel Context tt LI MobileStudienetModel Context cs LI MobileStudienetModel Designer cs MobileStudienetModel edmx diagram p 4 MobilestudienetModel tt Here are some of the advantages of Entity Framework gt Vy Course nnouncementsTable cs CourseTable cs 1 Reduced development time the framework EventStudentBT cs provides the core data access capabilities so developers EventTable cs can concentrate on building their application logic L MobileStudienetModel cs 34 ProgramAnnouncementsTable cs 2 Mappings between the model and the storage 14 ProgramCourseBT cs specific database can ch
90. y represents a console that prints out messages which contain information on how the mobile application works when it executes certain parts of the code Along with the system messages of the device we can add our own messages to be printed in case we want to test something specific or just show a value of a variable A snippet of the LogCat is shown on figure 64 Page 61 Javadoc Declaration 4 Search Console 3 Call Hierarchy 2238 LogCat 2 E Search for messages Accepts Java reqexes Prefix with pid app tag or text to limit scope info Tag Text r zE Course ID 3 CourseAnnouncement ID 9 Vacation 1 Je Course ID 3 CourseAnnouncement ID 10 Example projects a Course ID 4 se Course ID 7 Je course announcements size z BroadcastReciever BINDING MAIN ACTIVITY COURSE ANNOUNCEMENTS HAHAHA Vacation MAIN ACTIVITY COURSE ANNOUNCEMENTS HAHAHA Example projects Je NOTIFICATION SESSION PLANS Writing LINQ querries zE NOTIFICATION SESSION PLANS WCF service projects ze NOTIFICATION SESSION PLANS WPF and data binding 33 4 gt a aa aaa m p Figure 64 Android SDK LogCat tool Black box testing On the contrary of the white box testing the black box testing is a type of testing where the person that performs the tests to the system has no knowledge of how the system works at all It is usually done by third party people invited just to test the system out or by the cli
91. z og means that both students can see the same event in their event 7 E lists on the devices This allows us to control who sees the events and who doesn t It is good because this way we present Figure 52 EventStudentBT a very flexible way for the staff members to associate events to holding associations the right people between students and events Now comes the part where we have to make this information available for the clients to see For this to happen we have to make the WCF web service to provide some kind of way for them to get the information from the server In order to do that we have to make the function that will give the information to the clients exposed so that it can be called over the network On figure 53 we can see a function called Page 52 GetAllEventsForStudent Before that Method GET function there are some properties HESA LESEREN ET Si SSS set to that function One of the properties is the OperationContract property This property is the thing BodyStyle WebMessageBodyStyle Wrapped UriTemplate events for student id jid r gt GetAllEventsForStudent that makes this function exposed Figure 53 GetAllEventsForStudent function that is over the network so that it can be exposed to the network called by the clients of the system The second property which is the Webinvoke property specifies some special settings to that function The first one Method
Download Pdf Manuals
Related Search
Related Contents
19 - Impressions Borgia Fedders CH18ABD1 Heat Pump User Manual Dispensador de agua con carga por la parte Quiz 264 sessione Dicembre 2013 (nuova finestra) ATS 9462 User Manual Philips TFA9843AJ User's Manual ATIR-T20 Kenmore ELITE 790.99613 User's Manual instruction manual einbau- und betriebsanleitung manuel d utilisation Copyright © All rights reserved.
Failed to retrieve file