In the module "Cloud Computing" students are supposed to learn how to cloud compute by working on their own project which will
The name of the project is Planify and its purpose is explained in the following description (both - in a nutshell and in more detail).
The goal of this specific project is to create an application for organisations which plan to provide their members with events, but have no idea which events might be popular.
To do this an application will be created in which the members are able to note down their private events and parties. By doing this the organisation is later able to evaluate the noted events by using a Wordvector-trained system and therefore to see which eventtypes (types! "Movies/Series" is a type - "Captain America" is not. Same for "Music" and "Panic! At the disco-concert".) are popular with their members and plan internal events accordingly.
Based on that events can be organised which will leave all parties involved satisfied.
Let's be honest - we all know this problem.
Whether we're talking about our local (or international, for that matter) friendgroup or the organisation we're active in - we all know the situation considering event planning. Especially if you're in the planning party.
If you're not - let me explain to you.
As a member of the planning party, there are lots of things you have to keep in check: When is Mr Smith free to attend to event? Which food is Mrs Christie allergic to? Was it Mr Doyle who announced he would never visit a reading session?
Just to name a few of them.
And sadly, even if everything is perfectly planned and everybody has time and the food is right, it doesn't mean there will be lots of people present. Maybe out of fifty people invited, five will arrive.
If you later ask for the reason, the answer, most of the time is rather similar: "I didn't have enough time" or "I'm sorry but (insert activity) was never something I enjoyed".
To be able to go against this rather annoying situation, I want to present you Planify - an app hosted in the cloud which could do exactly what you need it to. With its help, you're perfectly able to see which weeks are rather busy, when which person is available and - which events people are generally interested in.
The application is structured as follows:
First of all - every member of an organisation is granted access on this app. Every party is simultaneously able to introduce their plans in a calender to make them available to other parties which might be interested. E.g. Mrs Christie is hosting a small get-together and is open for people from her organisation taking part in it. So she puts it in the application making it thus visible for all. What does happen now?
Two things:
Of course all of this will happen with permission of the users themselves - the organisation should never employ this technique without getting the permission of all parties involved.
After having analysed the trends in event planning, the organisation is now able to use the information gained for their own planning:
They know who is free at which time and which events are generally favoured by the organisation members thus increasing the probability of a high satisfaction level with a future event.
Make your members happy - plan successfull events. Only with Planify.
Thank you for your attention.
There are several elements the application will be based on. To name the most the important ones:
The architecture of this project will be event-based architecture as a continuous updating/processing is not needed and only happends after certain events (e.g. "Event is added by User" or "Event Planner started evaluating process"). The events are yet to be defined.
As the user stories and milestones were planned and designed in complete unison, most of them coincide with each other. Nonetheless, the associated user story is always mentioned with the specific milestone.
The project concerning the milestones is structured as following:
Hito#0 - Milestone#0 The student's Github account is prepared to starting a project. Additionally, the student now knows all the basic functionalities of Github and can use them according to formal conventions provided. A general project idea (including business logic and the potential to be deployed in the cloud) is presented and described.
After having everything prepared and the project concept validated, the student is now able to design User Stories and based on that, Issues to tackle to implement the application.
Apart from that, the milestones for the student to follow were designed and also the first classes/files needed declared and commented (not yet implemented!).
The latter can be found in combination with the associated issue at:
[I 0] - Base approach on the user's needs - Closed
[I 1] - Design the classes possibly needed for the application - Closed
The User Story started at this point is:
After having the project structured in User Stories, corresponding tasks and milestones, the second milestone is employed to create a MVP or in this case - to implement the core functions of the application.
Those consist in the design of a general process when employed by an Event planner, the creation of the classification-algorithm (probably Neural Network based), its training and its testing and the design of general easy-to-read data representation.
After this milestone the Event planner should be able to evaluate how many events of a certain type are planned and ideally name the number to the planner.
Issues associated with this milestone are:
[I 1] - Design the classes possibly needed for the application
[I 2] Understand the process an Event Planner goes through
[I 3] Get data about different event types
[I 4] Decide which type of classification might be best
[I 5] Design an easy to read representation for the Event planner
The User Story associated with this milestone is:
Similar to the second milestone, my third milestone will focus on the extension of the core functionality. This has to be done, as the core functionality - the analysis of different events, the sort into different event types and the later display of how many events of a certain event type were planned - constitutes the unique selling point (USP) of this application.
In this case, the application is extended by further functionalities, like the display of which events were sorted under which event type.
Issues solved in this milestone are:
[I 6] Find a way to add additional data in a readable way
[I 7] Create representation designed in [I 5]
The User Story associated with this milestone is:
After having implemented the core functionalities constituing the USP, the application will be looked at from an User's (see "The User", not to confuse with "The Event planner") point of view and extended by functions that might seem "normal" (like for example "adding events"), but nonetheless are an important part of the final application.
Those primarily consist of giving the User the possibility to add events. (Why this is chosen before the "giving the User the chance to see events"-functionality, is explained in the document concerning the User Stories (see Hito#1 - Milestone#1)).
Issues resolved at this stage are:
[I 8] Understand the process an User goes through to create an event
[I 9] Create a standard format a user is allowed to add data
[I 10] Possible methods to represent events added by the user
The User Story associated with this milestone is:
After having implemented the one side of the application enabling the User to post events, it now is important to make the other side possible: The enable all users (The User and The Event planner) to see the events already added.
Issues associated with this milestone are:
[I 11] Understand how an Event Planner and an User View can be combined (if possible!)
The User Story associated with this milestone is:
Cloud deployment. If everything works out, the application should now be ready to be deployed in the cloud.