Computing Society app for Android

A companion project to the Computing Society Website

The Computing Society App for android is a companion project of the Computing Society website and will support/mirror many of the same features. In light of this, the aim of the app is also to give a convenient outside view of the work of the Society as well as the people responsible.

Feature Set

The app will support the following feature set, which is subject to change

  • Create user profile
    A potential user should be able to sign up to become a member of the computing society.
    Signing up is done using student ID number, username, email address, password

  • Log in
    General id number + password combination login

  • Search
    The app shall allow a user to search for another user by ID number or username and view their user profile

  • Discussion forum
    A reflection of the web based discussion forum on the Society website.
    Users shall be able to create discussion threads and make replies.

  • Blog creation
    A user shall be able to create a blog to feature a topic which they care to share

  • Project display
    A showy display of the projects completed by the Computing Society and their details

  • News feed
    A chronological feed of Computing Society announcements

  • Subscribe to mailing list
    A simple setting allowing a user to opt in and out of receiving emails



News Feed

User Profile

Blog Post


  • User

    • user_id: int
    • email: String
    • first_name: String
    • last_name: String
    • username: String
    • position: String
    • image_url: String
  • Blog

    • blog_id: int
    • user_id: int
    • topic: String
    • num_posts: int
  • ForumPost

    • post_id: int
    • user_id: int
    • topic: String
    • date: long
    • message: String
    • num_comments: int
    • num_likes: int
    • num_dislikes: int
  • BlogPost

    • post_id: int
    • user_id: int
    • blog_id: int
    • title: String
    • date: long
    • message: String
    • num_comments: int
    • num_likes: int
    • num_dislikes: int
  • Comment

    • comment_id: int
    • user_id: int
    • type: int
    • parent_id: int
    • message: String
    • date: long
    • num_likes: int
    • num_dislikes: int
  • NewsItem

    • item_id: int
    • title: String
    • summary: String
    • message: String
    • date: long
    • body: String
    • image_url: String
    • num_comments: int
    • num_likes: int
    • num_dislikes: int
  • Project

    • project_id: int
    • user_ids: List
    • name: String
    • description: String
    • link: String


If you have been given push access to this repository, you should clone this repository and bear the following general working git guidelines in mind. You will have push access to this repository if you are a member of this team.

  • No work is to be done on the master branch. The master branch is protected and you won't be able to push to it
  • Do not work directly on the dev branch. After you clone this repo you should create a local branch for any feature you are working on
  • It is good practice to pull changes from the remote dev branch to your local copy frequently and merge them into your feature branch to keep it up to date. This is especially true if you working on something that takes you longer than an hour to complete. This will help you avoid merge conflicts when you are finished with your feature.
  • When you are finished working, commit all your changes to your feature branch and merge them into your local copy of the dev branch. If you had been keeping your feature branch up to date this should be relatively easy.
  • Do a final pull on the dev branch and resolve any merge conflicts that may occur. You can read more about resolving merge conflicts here.
  • Push to the remote dev branch.

Alternatively, to contribute to this project, you will need to do the following:

Fork the repository to your GitHub account by clicking the relevant button above

Clone your forked repository to your development computer. This is the repository that you will do your work in

git clone<username>/uwicompsociety-android

Add this repository as an upstream remote branch.

  • This will allow you to pull any changes that have been made to the code since you forked it
git remote add upstream

Do some work!

  • This is the fun part where you actually write some code. Your purpose for forking this repository in the first place.
  • It is key that you put each logical component that you want to contribute on its own branch. For example, let's say you have already forked the repository and cloned it to your computer. When you are ready to do some work, doing these commands as a rule will always help:
$ git checkout master
$ git pull upstream master && git push origin master
$ git checkout -b <branch_name>
  • These commands, in order, ensures that you're working on the master branch, syncs your local repo with the origin (to perhaps pull some changes since you forked) and then updates your remote repo with changes, if any, and creates the and moves you to the branch you want to develop your new feature on.
Create a pull request.
  • To create a PR you need to push your branch to the origin remote and then press some buttons on GitHub.

Once you have committed your changes, push the new branch with

$ git push -u origin <branch_name>
  • This will create the branch on your GitHub project. The -u flag links this branch with the remote one, so that in the future, you can simply type git push origin or just git push.

  • Swap back to the browser and navigate to your fork of the project and you'll see that your new branch is listed at the top with a handy "Compare & pull request" button: