Difference between revisions of "Fabulous four"

From mn/ifi/inf5750
Jump to: navigation, search
Line 10: Line 10:
 
= Summary of requirements =
 
= Summary of requirements =
  
=== Project:&nbsp;<span style="font-family: arial, sans-serif; font-size: 13px">Touch-based messaging app</span> ===
+
=== Project:&nbsp;<span style="font-family: arial, sans-serif; font-size: 13px">Touch-based messaging app</span> ===
  
<span style="font-family: arial, sans-serif; font-size: 13px">Will use CSS, Bootstrap, AJAX, Javascript, Angular, HTML5, Maven, Git.</span>
+
<span style="font-family: arial, sans-serif; font-size: 13px">Will use CSS, Bootstrap, AJAX, Javascript, Angular, HTML5, Maven, Git.</span>
  
 
<span style="font-size:larger">'''Architecture:'''</span>
 
<span style="font-size:larger">'''Architecture:'''</span>
<div>- CSS: Bootstrap</div><div><br/></div><div>- Client: HTML5, JavaScript and possibly AngularJS</div><div><br/></div><div>- Server: DHIS</div><div><br/></div><div><span style="font-size:larger">'''Features:'''</span></div><div><br/></div><div>- Send message</div><div><br/></div><div>- Add friend to friendslist</div><div><br/></div><div>- Delete message/conversation</div><div><br/></div><div>- Multiple people in same conversation, where conversation name = subject.</div><div><br/></div><div>- One color for your messages and another color for the other peoples involved in the conversation.</div><div><br/></div><div>- Headers with names displaying who said what and timestamp.<br/></div><div><br/></div><div>- Local storage for customizable number of months(1-6). &nbsp;<br/><br/>- Responsive chat. When a message is sent, it'll automaticly pop up in the conversation, no page refresh is needed.<br/></div><div><br/></div>
+
<div>- CSS: Bootstrap</div><div><br/></div><div>- Client: HTML5, JavaScript and possibly AngularJS</div><div><br/></div><div>- Server: DHIS</div><div><br/></div><div><span style="font-size:larger">'''Features:'''</span></div><div><br/></div><div>- Send message</div><div><br/></div><div>- Add friend to friendslist</div><div><br/></div><div>- Delete message/conversation</div><div><br/></div><div>- Multiple people in same conversation, where conversation name = subject.</div><div><br/></div><div>- One color for your messages and another color for the other peoples involved in the conversation.</div><div><br/></div><div>- Headers with names displaying who said what and timestamp.<br/></div><div><br/></div><div>- Local storage for customizable number of months(1-6). &nbsp;<br/><br/>- Responsive chat. When a message is sent, it'll automaticly pop up in the conversation, no page refresh is needed.<br/></div><div><br/></div><div>- Marking messages as read after they have been opened.<br/></div><div><br/></div>
 
 
 
= Time schedule =
 
= Time schedule =
  
Line 95: Line 94:
 
*Setting up the database (Postgres)
 
*Setting up the database (Postgres)
 
*Deploy to mobile app (possibly delay it to third deadline)
 
*Deploy to mobile app (possibly delay it to third deadline)
 +
*JUnit tests
  
 
= Screenshots and screen flows =
 
= Screenshots and screen flows =
Line 119: Line 119:
  
 
We started of by implementing a system like in the mandatory assignments, i.e. with Java backend. Unfortunately, this was not the proper approach to implement the message system, so we needed to delete a lot of work. Luckily, we had started creating a static HTML page. We are all rookies in front end development, so there has been a lot of failures while working with JavaScript.
 
We started of by implementing a system like in the mandatory assignments, i.e. with Java backend. Unfortunately, this was not the proper approach to implement the message system, so we needed to delete a lot of work. Luckily, we had started creating a static HTML page. We are all rookies in front end development, so there has been a lot of failures while working with JavaScript.
 +
 +
Originally we thought the project was supposed to be done the same way as the mandatory assignments, so we did all the Java implementations similar to how they were done. Later we realized that we didn't have to do any Java, but just use the DHIS system.
  
 
= Suggested improvements to APIs etc =
 
= Suggested improvements to APIs etc =

Revision as of 11:43, 4 December 2014

List of group members

  • Sindre kvålsgard (sindrekv)
  • Jørgen Jacobsen Rognerud (jorgenjr)
  • Andreas Færøvig Olsen (andrefol)
  • Torgeir Ous (torgeiou)


Summary of requirements

Project: Touch-based messaging app

Will use CSS, Bootstrap, AJAX, Javascript, Angular, HTML5, Maven, Git.

Architecture:

- CSS: Bootstrap

- Client: HTML5, JavaScript and possibly AngularJS

- Server: DHIS

Features:

- Send message

- Add friend to friendslist

- Delete message/conversation

- Multiple people in same conversation, where conversation name = subject.

- One color for your messages and another color for the other peoples involved in the conversation.

- Headers with names displaying who said what and timestamp.

- Local storage for customizable number of months(1-6).  

- Responsive chat. When a message is sent, it'll automaticly pop up in the conversation, no page refresh is needed.

- Marking messages as read after they have been opened.

Time schedule

First deadline: (7/11)

  • Document architecture, features/functions and UI mockup to the wiki.

Second deadline: (15/11)

  • First bare-bone version - static HTML.
  • First version UI with Bootstrap.
  • Uploadable as DHIS web app.
  • Setting up Postgres database

Third deadline: (30/11)

  • Integrate with DHIS API.
  • Able to send/receive messages through DHIS.
  • Fully functional message system.

Milestone 1 (1st November)

  • Document features and architecture on Wiki
  • Show understanding of DHIS2 web apps

Milestone 2 (15th November)

  • First bare-bone version - static HTML
  • Uploadable as DHIS2 web app

Milestone 3 (30th November)

  • Finished, if applicable also with mobile app.


Final delivery: 8th December
Presentation 9th December

How you are dividing tasks within the group

First deadline:

jorgenjr:

  • Update wiki.
  • Design a UI mockup. (This is just a first draft and we may change it slightly if there are some important functions/features we decide to implement)

sindrekv:

  • Design flow charts.
  • Update wiki.

torgeiou:

andrefol:

Everyone must understand the features and functionality of the project.

Second deadline:

jorgenjr:

  • Java backend (Service layer, make the GUI and Database work together)
  • QA and testing sindrekv's work.

sindrekv:

  • Bootstrap/HTML
  • Basic JavaScript

torgeiou:

  • QA and testing jorgenjr's work.
  • JUnit tests

andrefol:

  • Setting up the database (Postgres)
  • Deploy to mobile app (possibly delay it to third deadline)
  • JUnit tests

Screenshots and screen flows

Flowchart5750.jpg
Inbox.png

Fig 2: inbox

Outbox.png

Fig 3: outbox

Newmessage.png

Fig 4: new message

Friends.png

Fig 5: friends

Messaging.png

Documented learning during project

We started of by implementing a system like in the mandatory assignments, i.e. with Java backend. Unfortunately, this was not the proper approach to implement the message system, so we needed to delete a lot of work. Luckily, we had started creating a static HTML page. We are all rookies in front end development, so there has been a lot of failures while working with JavaScript.

Originally we thought the project was supposed to be done the same way as the mandatory assignments, so we did all the Java implementations similar to how they were done. Later we realized that we didn't have to do any Java, but just use the DHIS system.

Suggested improvements to APIs etc

1. An easier way to see who sent the messages. When we've received conversations from the API, the messages has not contained a user ID from the sender. You can see the user IDs for all the users in the conversation, but not at a specific message.

Link to repository

gitolite@git.uio.no:u/sindrekv/project5750

Download link to sample web app or Android app