-
Notifications
You must be signed in to change notification settings - Fork 46
Project Description
Your customers have asked for you to create a customized web portal application. This application require a new front-end being created which will tie into existing Facebook functionality, as well as create new functionality. You will additionally be tying your application into several other existing web services and APIs. Everything you do on your site should be reflected on these other servers, and vice-versa.
There is quite a bit of ambiguity in the statement of needs and requirements. This is intentional. This has been done to get you thinking outside the box, and to allow you to be creative. Doing the bare minimum on this statement of needs will make the customer adequately content, but will not make them overly ecstatic with your project. You are expected to elicit requirements from the customer, and work with them to deliver the project that they want.
When the user initially logs in using their Facebook information, they will be taken to the main page. On this page, they will shown several items. Some of which include their friends news feeds from facebook, the current status (up or down price) of their top 5 owned stocks, and any of their own calendar events that are taking place on the current day. The page will also contain other information as yet to be determined by your customer. Other “Facebook” features to be implemented include but are not limited to Add a friend Add photos Update status Send a message through Facebook ...Others will likely be added by your customer.
This page will display a comprehensive report of all stocks that a user wishes. Using this component, a user may sell and purchase stocks fictitiously. When doing so, they may list the amount that they purchased or sold at that time. The purchase/selling price will be market value at the time of transaction. A history of all user transactions shall be stored and viewable to the user upon request. Actual stock prices and relevant charts may be retrieved from the necessary APIs. The user would also like to know the current amount made or lost from any stocks they have owned in the past. (This can be indivudally shown per stock, but also a running total such as "You have made $x trading stocks"). All relevant data should be stored locally in the MS-SQL database that is not web service dependant.
At any time, the user should be able download their purchase and sales history into a local file (any reasonable format is fine) on their own machines. They may then hit a “delete” button in order to wipe all transaction history from the MS-SQL server. The user may then reload their entire stock history using this saved file. If the user attempts to load this history file to their account when their stock information has not been cleared, they will be provided a message informing them that they will be overwriting existing data. They will have the option of whether or not they wish to proceed. Along with this message, they will be given the date and time the backup file was created.
For each specific stock the user owns or wishes to keep a note on, users may post a thought regarding it. Similar to a sticky note for each stock. This is entered into a free form text field and should only be viewable by the owner of said notes. This information will be stored in the SQL database.
Using an HTML 5 component which we will discuss, users should be allowed to chat with any other user that is currently logged on to the website. Users should be required to login. All of the chat that took place while a user was logged in will be viewable by that user in their own history page. If feasible, a master chat history would also be nice - viewable by anyone logged in.
Cookies should be used to remember a person’s handle.
After being logged in, each user will have their own calendar page. This calendar will closely resemble Google Calendar. For any selected date, events may be created. All information shall be stored in the MS-SQL database. If a an event on the calendar is occurring on the current day, this should be displayed on the user’s main page. The calendar is exclusive to each user. Recurring events are nice but not required.
A second requirement is that the data for this calendar is that a specific event should be downloadable and uploadable via an xml file to a user’s desktop. This means that a user could create a calendar event, download an xml file containing the event details and send this file to another user who could upload this event information to their application and have it appear in their calendar.
Your application is expected to pass various security requirements. Some of which are basic and include users not being able to access features of the application that they should not have access to. At various stages, your application will be evaluated by students in a simultaneous security course. Part of your grade will reflect how well you react to various recommendations by these students.
You are expected to perform proper testing on your application. This includes, but is not limited to: Unit testing. Integration Testing. System Testing. Load Testing Acceptance Testing. Usability Testing.
You are expected to provide the customer information on what pages were visited and how long a user was on a page. You may use a tool such as Google Analytics or similar tool. We will discuss Google Analylitcs, so if you are not familiar with this tool at the beginning of class, do not worry about it.
The application is expected to function on numerous supported devices. They include various browsers, computers and mobile devices. Some of them are: IE on Windows Chrome on Windows Firefox on Windows Various mobile devices (You will need to discuss the specific devices with your customer) You can discuss these items in further detail with your customer.
Use a version control system! I do not care which one you use. SVN in the SE environment BitBucket GitHub Google Code etc.... Make sure to give me access. You can let me know of the relevant account information in a simple comment in the correlating dropbox. I should be able to “kill” of your VM and not severely adversely affect your project. All of your information should be retrievable from your VCS. However, I do understand there would be required "set up" time if you had to move to a VM. Some of which includes installing SQL server and so forth.
Below is a breakdown of the points for the deliverables.
An overview of the deliverables can be found here
Deliverable | Points |
---|---|
Requirements Document | 5 |
Design Document | 5 |
R1 | 35 |
R1 Post Mortem | 3 |
Beta Release | 3 |
R2 | 46 |
R2 Post Mortem | 3 |
- Things will take longer than expected. Do not procrastinate. Setting up your SQL-Server instances and virtual directories may take longer than you expect.