Take part in open, balanced dialogue.
PHP HTML JavaScript Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Side Chat

Prototype Submission

Document and Design report: https://github.com/deco3500/sidechat/raw/master/SideChatDocumentationAndDesignProcess.pdf

Prototype: www.side.chat

Promotional Website: www.tallredman.xyz/sidechatLanding


Social media has been a great platform for users to share common interests, perspectives and narratives. An issue that has emerged, however, is the creation of 'echo-chambers'. Empirical research has previously found that on social media, users have a tendency to promote narratives that fall in line with their own opinions, leading to the formation of polarised groups. Within these groups confirmation bias facilitates further spread of content. Thus, like-minded individuals can gather in homogenous online environments and lose consideration for other viewpoints (Quattrociocchi, Scala & Sunstein, 2016). In the context of the current wealth of online content and its continual exponential growth, one way in which these 'echo-chambers' are undesirable is through the spreading of misinformation. Social media is a breeding ground for the massive diffusion of unverified and unsubstantiated rumours. When these rumours enter an echo-chamber, they propagate rapidly and can lead to wide-spread, ignorant, uncorroborated and sometimes dangerous narratives (Del Vicario, Bessi, Zollo, Petroni, Scala, Caldarelli, Stanley & Quattrociocchi, 2015).

This becomes particularly important in the realm of political discussion. Numerous studies have affirmed the potentially dangerous nature of these cascading, narrow narratives and have warned of the dangers of isolating ourselves in ideological echo-chambers. By doing so, we polarise ourselves by consuming media and news that only serve to reinforce our own opinions (Zuckerman, 2008). Within these communities on social media such as Facebook, Reddit and Twitter, users achieve recognition from their peers by being awarded tallied points such as 'Likes' or 'Upvotes'. Usually, comments that do not reflect the popular opinion of the environment are neglected or downvoted, which effectively silences balanced discussion. A fundamental flaw within the current design of up and downvoting is that it facilitates echo-chamber threads - the act of voting does not require substantive sober deliberation, and instead appeals more to knee-jerk, emotional and irrational reactions (Wolfshead, 2015). Side Chat aims to provide a solution to this issue, by creating an environment where all voices can be heard.

Take part in open, balanced dialogue.



If a social media user has come across a biased political thread (e.g. on Facebook or Reddit), they can set up a Side Chat thread for more open discussion. Rather than Upvotes and Downvotes, each comment in the thread can be voted on a political scale ranging from far-left to far-right. Each Side Chat thread has an overall 'score' to indicate how biased the discussion is. The more balanced and active the thread is, the higher the thread will appear on the main page of Side Chat (similar to reddit's front page). This feature encourages multiple viewpoints to be expressed, as biased discussions drop down the page and become less visible. Users can sign up with Facebook but due to the political nature of discussions have the option to remain anonymous.

Voting System

A user has the ability to vote on each comment in a thread. A vote is based on a five point-likert scale:

Far-left Centre-left Centre Centre-Right Far-Right

Voting on a comment will affect:

  1. the spectral score of the comment, and
  2. the recipient user's spectral score

The spectral scores of users and their comments cannot be seen by other users, as this may lead to cognitive biases before voting.

The impact of a user's vote is mediated by how active they are on Side Chat. New users will have less of an impact on voting. This is to mitigate vote manipulation through users activating multiple accounts.

As comments are added to a discussion and are voted on, the spectral score of the discussion thread will be updated and displayed in real-time. This score is an average of all of the underlying comment's spectral scores.

A discussion score near the Far-left would indicate an over-representation of comments leaning towards the left. A discussion score near Centre would indicate that the comment representation is balanced from both political sides, or there is a large proportion of comments voted Centre.


The target audience for Side Chat will be people, primarily young, who want a more balanced worldview. Rather than deciding what their opinion is and boxing themselves in with like-minded people, Side Chat audiences will want to speak with everyone, so as to gain a perspective before making political decisions.

Considered Technologies

Layer Resource
Front End HTML, CSS, JavaScript/JQuery
Back End PHP, MySQL, Laravel
Hosting Vultr Server


Name Student Number Email Skills Role
Alex Barnett 42855219 barnetas92@gmail.com Computer Science, HTML, CSS, MySQL, PHP, Laravel Team Leader & Back-end
Chris Lane 43173068 lanechr@hotmail.com Bachelor of IT, HTML, CSS, JavaScript/JQuery, MySQL, PHP Front-end
Melissa Nguyen 43209462 melissa.nguyen@uq.net.au Dual Bachelors IT/Arts, Graphic Design, Java, Python, JavaScript/JQuery, HTML, CSS, Agile Development Design
Luke Hartwig 41779596 luke.hartwig@uqconnect.edu.au DipSci, Python, HTML, CSS, JavaScript, Java Content Management

Logistics and Meetings

  • All members are partially responsible for logistics - public transport and cars are accessible to all members to handle equipment.
  • All members of the team are expected to own, or at least have access to a laptop or computer throughout the development of the project.
  • Laptops and notes are to be brought to meetings by all members.
  • Meetings should be focused and should follow an agenda as outlined in the lead-up to the meeting; all members are responsible for ensuring that agenda items are addressed before discussing other matters.
  • For each meeting, a member should be nominated to keep meeting minutes and notes to be posted, however all members are expected to keep their own notes as well.
  • This team agrees that 10 minutes is an acceptable amount of time to be late to a meeting, unless discussed earlier.
  • If a member is unable to attend or will be late to a meeting, they are expected to contact the team via Facebook or Slack as early as possible so that the team is aware and any adjustments to the meeting or agenda can be made.
  • Acceptable reasons for missing a scheduled meeting include sickness and mental health, conflicting assessment, family commitments, work - other reasons can be discussed with fellow team members.

Work Distribution and Responsibility

Team members' roles are distributed based on previous experience and interests, however this does not mean that roles are mutually exclusive and siloed. Each member is expected to be somewhat active in all roles and assist and collaborate closely with their teammates. A goal of this project is work effectively and learn from colleagues with different skills and backgrounds.

All members are expected to contribute equally to the project workload, and complete assigned tasks in a timely manner. Work should be of good quality, and any problems should be discussed with the team.

Decision Making and Progression

Communications surrounding decisions and progression should be handled in a productive and mindful matter. Team members are expected to communicate their ideas effectively, with justifications and questions discussed with the group. When feedback is required, it is to be give in an objective, specific, actionable, constructive and useful manner. After group discussion, decisions will be made by group consensus, all team members will agree before proceeding.

Handling Poor Performance and Conflict Resolution

Poor performance could be exemplified through minor and major non-compliance.

Minor non-compliance is defined by actions of team members such as not replying in a prompt manner via the team's communication channels, providing short notice if unable to attend classes or meetings, completing work to a low standard when no calls for assistance or clarification were made. While these actions may not necessarily have major effects on the project, they made disrupt workflow and build frustrations within the team.

Major non-compliance is defined by actions such as not attending classes or meetings and not communicating via the team's communication channels. It also includes not meeting checkpoints and deadlines, not completing allocated workloads, not providing input in team discussions and being rude or disrespectful to team members. All these actions have major impacts on the project and team and should be avoided.

Should there be any indication that members are committing any minor or major non-compliances, team members should address them sensitively and as soon as possible as to facilitate project work and team morale. In the case of minor breaches, issues should be clearly communicated with the person in question, with suggestions for steps they can take to resolve the issue. Should the minor breach become a persistent issue with no effort seen in resolving it, it will escalate to a major non-compliance.

Major non-compliances are to also be handled first within the team by addressing the person concerned, with tutors notified. Should there be no changes, the issue will be escalated to tutors and other relevant teacher staff. The member will be peer reviewed poorly.

Any conflicts within the team will be dealt with in a similar matter. In terms of conflicts in project decisions if a unanimous decision cannot be made, the team leader will make a call. All members are expected to be supportive and continue working to a high standard according to that decision.


Meetings will take place on Fridays from 10am-12pm during the workshop session. Outside of these hours, Slack and Facebook Messenger will be the primary means of communication. Files will be stored on Github and a shared folder on Google Drive.

These platforms will be adopted as all members notified that they are familiar, have access to and can work effectively with them. All members are expected to share and be open with their work, and communicate any changes to these platforms.

Naming Conventions

Thanks to the use of use GitHub, complicated date/time naming conventions are unnecessary, however all files will be named concisely, and in a manner that immediately makes it clear what that file is responsible for.

  • Database Tables must be pluralized snake_case
  • Database Columns must be snake_case
  • Class Constants must be declared in StudlyCaps
  • Class Constants must be declared in upper case SNAKE_CASE
  • Function Names must be camelCase
  • Variable names must be camelCase


Throughout the project, the team will be following a design process with the following phases and specific deliverables at the end of each:

Phase Milestones Due Date
Research Prior art, available technologies, design inspirations, defining users Friday Week 6
Requirements User interviews, observations, creating personas, developing scenarios and storyboards, defining scope, limitations Friday Week 7
Design UI/UX design, prototypes and user testing, wireframes, mockups, back-end planning, APIs, algorithm design, site map Friday Week 9
Construction Front-End/Back-End development, database building, algorithm implementation Friday Week 12
Testing User testing and feedback required from design stage onwards, low and high fidelity prototypes used (e.g. paper prototyping for design decisions, unit testing for code, full user experience testing using mock ups and evolutionary prototypes) Week 8 - 13

Our project interim sprints will run from Week 7 - 8 (research, requirements and some design), Week 8 - 10 (design, construction and some testing) and Week 10 - 12 (construction, testing and iterative design modifications). At the end of each, we will be presenting and demonstrating any progress we have made. These will be the milestones are outlined in the table above.

N.B. We will be cycling through design, construction and testing stages iteratively from week 8 - 13

Resource Allocation

Phase Role Resource Ratio
Research Front-End/Back-End/Design/Content 0/1/1/2
Requirements Front-End/Back-End/Design/Content 0/0/2/2
Design Front-End/Back-End/Design/Content 1/0/2/1
Construction Front-End/Back-End/Design/Content 2/2/0/0
Testing Front-End/Back-End/Design/Content 1/1/2/0

Role Considerations


Role Considerations
Back-End What technologies and innovations in this field already exist?
Design What does prior art look like?
Content Prior art - what do users currently view? What would they want and need?


Role Considerations
Design What are our target users like? What scenarios do they usually encounter? In what context would they need this product? What are our limitations?
Content What content would make our project stand out from prior projects? What has been missing in the past?


Role Considerations
Front-End Working closely with design to consider possible implementations in front-end
Design Creating visual aids and prototypes develop and consolidate design; working closely with front-end to ensure smooth transition between design and implementation
Content Developing sitemap, navigation and content placement according to requirements and research - working closely with design


Role Considerations
Front-End Using available technologies to develop front-end based on designs; consulting with design and content should technological challenges arise and design needs to be altered; developing smooth integration with backend
Back-End Using available technologies to develop back-end based on required content; consulting with design and content should technological challenges arise and design needs to be altered; developing smooth integration with front-end


Role Considerations
Front-End User tests developed to test functionality of front-end and back-end integration
Back-End Unit testing developed to ensure smooth running of back-end and front-end integration
Design Testing user experience


Social/Mobile: Awareness, Coordination, Conversation, Synchronous/Asynchronous Distributed Interaction, Informal Communication

News: Bias, Group Think


      Del Vicario, M., Bessi, A., Zollo, F., Petroni, F., Scala, A., Caldarelli, G., Stanley, H.E., Quattrociocchi, W. (2015). The Spreading of Misinformation Online. Retrieved from http://www.pnas.org/content/113/3/554.abstract

      Quattrociocchi, W., Scala, A. & Sunstein, C.R. (2016). Echo Chambers on Facebook. Retrieved from http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2795110

      Wolfshead. (2015). Deconstructing the Groupthink of the Reddit Echo Chamber. Retrieved from http://www.wolfsheadonline.com/deconstructing-the-groupthink-of-the-reddit-echo-chamber/

      Zuckerman, E. (2008). Serendipity, Echo Chambers, and the Front Page. Retrieved from http://www.niemanlab.org/pdfs/ethanzuckerman.pdf