We are trying to create cloud based interactive system to maintain the information about projects done by students under some project mentor. It is an open application.Our prime objective is to create a forum where projects can be registered and be carried on. So far we have created the pages and established a navigation between them. But we had to start by performing a lot of research and deployment phase by phase.I have tried to jot down the course of action in words. hope its useful.
1. IDENTIFYING THE USERS:
Identifying users can be done using several techniques, such as user interviews, business stakeholder interviews and the “shadowing” method of observation. Interviews gave us answers to questions about the users’ knowledge of the system and computers in general, while shadowing yielded more detailed information about how users perform tasks and what errors they make. The method is called shadowing because the observer is like a shadow, watching and noting the steps a user takes.
Since ours is a website to enlist project done by students under some mentors we have 3 main users.
Since our users are common and we had access to them we did not need any tool to help us analyse the users. But if in case you dont have access to real users- either because you dont have permission or are designing for open application you can use tools that will help you identify the users. There are many such tools in the internet.They help you understand the real users along with their habits, goals and motivation.
Since ours is a website that kept log of all projects done or current being done by students it is basically a form of database that keeps information. So we had to first identify the needs and habits of our first and most important user The Students.
Project proceed in groups. A group could not have more than 4 members in it. Analysing this group of user we identified that students have a tendency to make their own group. We were missing out on a no of users because we did not provide a way for students to choose their groups. Talking to students from schools and colleges we were able to identify this unsaid need of theirs. But giving them the sole power to make groups would bring in a lot of regionalism and competition which is not healthy. We want to create a dynamic interactive system where learning is the key objective. So we provided a way for students to choose their groups but it is the mentor who decides if such a group can actually turn into a registered team. He should see that there is equal participation of all the members and the group does not encourage regionalism of any sort.
Next user is the mentors under whose supervision the projects are carried on. The mentor grants team requests guides the whole project. They also work as references who brings in recruiters to hire students working on individual projects. Both students and mentors are our prime user so they have to create an account register themselves to take part in this interaction.
The last user is a the recruiters who search for projects that are going on currently suited to their needs. They can be referenced by mentors. Since they are one time user they dont need to log in. They can just log in as recruiters and and view the list of projects taking place there and clicking on a single project would bring them to the contact details of each student working under it.
You can follow one of any number of processes in designing the user interface. You might already have one. However, I would suggest that you consider the Agile approach. Why, you ask? Well, because for users (and clients), the user interface is the product. So, how does Agile help? It helps through its key principle: the iterative approach. Each iteration consists of all of the phases defined by your process. This means that at the end of the first iteration, you will have a product that can be tested, a prototype.
For our project since this is a form to keep a database of projects currently going on or have already been done interaction is the key objective. So we have been uploading the page designs, navigation, project flow before starting to code. We used EVOLUS PENCIL to create the designs.Pencil is built for the purpose of providing a free and open-source GUI prototyping tool that people can easily install and use to create mockups in popular desktop platforms. You can just sketch the design and get it cleared from the clients before proceeding.We have also shown the designs to real life users to get their feedback and tried our best to incorporate the changes pointed out by them. Like previously we kept two tabs for user one being the Students and the other the Recruiters. We did not consider a separate tab for mentors. But showing the design to a lot of common users we could understand the need for separating mentors from recruiters because both have different objective to use this platform for.
The next step in the process is to create prototypes that will simulate the real application. A prototype can contain one or more features (or all of them), but it actually does nothing. It merely simulates the behavior of a real application, and users will feel that they are actually doing something. Prototypes may contain some functionality if needed (such as complex calculations).
Because the nature of a prototype done in HTML is temporary—its purpose, after all, is to ideas—don’t bother with the code; just make it work with minimal bugs. You will throw it away anyway.
We for our project didnot use any prototyping tool for this. We created a powerpoint slide show just to show how the project flows and showed it to a few users. It was pretty well accepted so did not do much in this phase.
This is the most important phase and also the most challenging one for us till now. We are still stuck in this phase. Intense coding is generally the main activity in this phase but this phase must come after the user analysis, design and prototyping phases have been done so that the designs and requirements laid by the prior phases does not get modified once we start coding. That is why it is absolutely necessary for the developer-client interaction before we get to this phase.
For us in this project this phase has been or rather is being the most challenging one since we had to learn HTML, PHP in the first place. Some of our group members come from different discipline including me and so we didnot have much knowledge on how to create a website before. And doing that being full time college students making sure we dont fall back in class has been really difficult. w3schools, stackoverflow, github,tutorialpoint are some of the sites we took help from. Youtube videos have also been extremely helpful. we have currently made the entire website using localhost server in PHp. Deployment in Bluemix is still not done. We are currently facing a lot of problems trying to do that. So if anyone reading the blog can share any links or videos that would show the step by step process of deployment in Bluemix it would beery helpful.
After the code is developed it is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase. During this phase all types of functional testing like unit testing, integration testing, system testing, acceptance testing are done as well as non functional testing are also done.
We came to this phase but our project failed in this phase so we are working on that currently.
After successful testing the product is delivered / deployed to the customer for their use.
Our project is to deploy our website in Bluemix platform but unfortunately due to our lack of expertise on this platform we are not being able to proceed furthur.
As stated earlier any help on this will be greatly acknowledged. Once we complete this phase i'll be writing a blog as to how we overcame the hitches so that anyone trying to deploy a project on Bluemix in future can refer this blog and hope it will be of help.
The maintenance phase is the last stage of the cycle. After software passes the design stage and is implemented, the maintenance phase of the software life cycle begins. Understanding the characteristics of the maintenance phase of the software life cycle allows individuals tasked with analyzing the performance of the software after deployment to correctly resolve issues that arise.This is supposed to be the last phase and so we have not experienced it yet once we are done with the deployment phase i will be writing a blog explaining the hitches faced by us in the last three phase namely Testing, Deployment and Maintenance phase and how we overcame them. Meanwhile any help on the Deployment phase is very welcomed. This is my first blog ever so any criticism would also be very well received. THANK YOU.