Android Hackathon

ShiftKey Labs and the Dalhousie Computer Science Society (CSS) are teaming up to run a 2-day hackathon focused on Android mobile application development.

The format is pretty simple: Show up, join or form a team, brainstorm an idea guided by the disclosed prize categories, spend the remainder of the weekend coding out that solution, and present/demo your idea to the group. Everyone will get a chance to vote on the presentations/demos and the group who receives the most votes in the prize category will win!

Snacks and drinks will be provided throughout the event to keep you fuelled up!

Presentation Order

Team Nathan We aim to create a pain-free trading experience where users can post items they want to trade and see what others are offering by swiping through items of interest. Users that express interest in each other’s selections will be matched with each other so they can discuss their trade in detail.
Team Rocket We have built a vocabulary builder game with an engaging tinder like user interface. The game consists of five rounds where user can select the correct answer by swiping left or right. We generate the question options using a vector space model called Word2vec. The word2vec model has been trained using Deep Learning on a corpus containing 1 billion Wikipedia articles. The neural network models makes use of Skip-Gram and Continuous Bag of Words deep learning architecture.
Group 4 YouNote is an Android application that allows users to compose notes while watching YouTube videos.
Team Jelly Friends #1 Worldwide Ltd When someone is struggling with their mental health it can be difficult for them to reach out to others for social contact or to keep a rigid schedule. The Jelly Buddy is an interactive friend that helps users deal with these problems. The Jelly Buddy has many features to engage the user. You can interact with your jelly through conversations, playing mini games, or get it to remind you about taking medications. If you’re having a bad day the Jelly Buddy has activities that will help you decompress and feel better.
Pizzavengers (FitFood) Our app aims to find nearest restaurants based on the device location and show the available options to the user. Once users select a particular restaurant of their choice, app will suggest the food items of their choice available in the restaurant. The suggested food will be shown based on the calculation of the health stats of the individual. The app would benefit users to monitor their daily dietary needs.
G12 en-route eatery
Punjabis Foodies is a comprehensive one-stop solution for everyone, especially for people who are busy and wish to save time in preparing recipes. Foodies does everything right from finding best deals on groceries, selecting and ordering them, offering suggestions for recipes to finally providing locations for nearby superstores.
Due2Do Due 2 Do is powerful to-do list aimed to facilitate one’s life. It can organize your task based on priority. Due 2 Do is a one-for-all option for the users where the task can be classified as a routine, location-based task and a gathering event task. It will provide a priority-based reminder and facilitate the user with navigational functionalities. People can store links, capture image, create gathering groups, create a to-do list for grocery shopping and many more alternative usages.
Let’s Meet Developing apps to organize meetings
CS-PrepGuide CS-PrepGuide is an App that helps users take important decisions regarding their career paths. It is a one stop solution where users can find all the information about the jobs available in the major IT companies, the skills required for these jobs and the resources available to prepare for these jobs. This app allows users to specify their skills and accordingly suggests the jobs the user may be interested in. Each job listed is accompanied by preparation resources such as youtube channels, preparation guides, online courses etc. More resources can be posted by users and other users can rate the resources available as well as comment on them. This app aims to provide students with guidance so that they can focus on achieving skills that are required for the job they would like to get.
Mobile Computing Group 3: Archipelago Real time strategy game for Android devices.
HashTag Elo is an Android application which allows people to share their experiences about the gadgets they own. This app will enable people who intend to make purchases to get personal reviews and gain the buying power from different people’s experience. Elo provides a platform for the user to come together to discover the most relevant product based on user comparative analysis of their reviews. The motivation of Elo is to harness the wisdom from the user, about the gadget they use.

Elo is a gadget advisor, which collects reviews and feedbacks from many users who have had experience of using the product which is meant to be bought. Though it does not have age barriers, Elo is meant for the user who has domain knowledge or in need of expertise for the products that they post/read reviews about.

CarryAir Our world has become a global village where boundaries are no longer a barrier to accomplish great goals. Countries like Canada is witnessing large incoming flow of people from overseas. Our group strive to guide such people especially by offering valuable assistance in selecting the most suitable wireless plan for them.
Most of the existing applications have limited service for customers looking for attractive deals available on purchase of a new wireless connection or a new device under contract. Our goal is to create an application that lists the best choices available across different providers for first time wireless purchase. Using GPS, networking and camera features, our app will provide several other features such as individual user dashboard with online bill payment facilities, e chat and nearest store locating features.
Group 17 (DalAssist) The purpose of our application is to provide a full stack mobile application for new international and current Dal Students by incorporating and presenting all the generic as well as Academic information into one complete package. This gives the international students a complete guide of Halifax and Dalhousie University.
MoodoVoodo The application recognizes the user’s moods by scanning facial expressions and through music therapy elevates the user’s mood.
The Mob Go Somewhere is an event-based application that allows users to search for popular events through a map-based interface in a given location (Halifax or Toronto in this case). The application screens Tweets from a backend Twitter API filter allowing users to gauge the number of individuals at a particular event, what the event is and further details about the business (i.e. location, contact information). Furthermore, users can share their experience about the environment and access features such as checking-in and sharing photos about the event. Through a common medium, users can connect and share their experience with others via social media and also promote local events they otherwise would not be aware of.

Voting Form

https://goo.gl/forms/ErZDz5YrIovCwvAD2

Updates

  • Feb 11, 9:48 am: Lunch will be served around 1:00 pm
  • Feb 10, 6:31 pm: Please select one member of your group to complete the Project Profile form.
  • Feb 10, 3:10 pm: Please join our Slack channel to receive timely communications from the hackathon coordinator team about the event. https://goo.gl/Kr3iy8

Goals

To generate some interesting ideas and start creating a functional mobile application prototype for the Google Android platform. Hackathons are also a great way to meet new people, earn bragging rights about your coding abilities, win prizes, and have some fun!

Technical Mentors

To help students with any technical questions they might have, a variety of mentors will be volunteering at the hackathon.

Schedule

The hackathon is scheduled to start on Saturday, Feb 10th at 10:00 am and end by Sunday, Feb 11th at 6:00 pm.

Saturday, February 10th
Time Details
9:30 am Registration, coffee, pastries
10:00 am Kick off
10:25 am Form teams, discuss project ideas, begin coding!
12:00 pm Lunch
5:30 pm Pizza dinner
9:00 pm Day 1 ends (but students can continue coding if desired)
Sunday, February 11th
Time Details
9:30 am Morning coffee, pastries, continue coding
1:00 pm Lunch
3:00 pm Team presentations and demos (3 mins max)
5:30 pm Voting
6:00 pm Winners announced, group pictures, prizes/certificates awarded

Prizes

There will one prize group for teams of junior undergraduate-level students (years 1 and 2) and one prize category for teams of senior undergraduate-level students (years 3 and 4) / graduate students. Within each group, there will be two prizes: One group prize for the “most humourous” application and one group prize for the “most practical” application. It is possible for a group to win in more than one prize category in their grouping.

Unlike other hackathons or pitch events, there will be no judging panel as everyone participating in the event will be given the opportunity to cast votes in the prize categories for their grouping.

Prize Amounts
(per prize)
Team size Prize per student
1 $200
2 $150
3 $125
4+ $100

Most Humorous

One of the primary goals of this competition is to have fun. Winners of this prize category have the opportunity to showcase their funny side and develop a game, mobile app, or other piece of software that is clever and makes people laugh.

Remember, the solution has to be in good taste and everyone is expected to follow the appropriate student Code of Conduct at Dalhousie.

Most Practical

A prize will be awarded to the group that develops a mobile application solves a real need, is something that a wide variety of people would use, and adds tangible value to users’ lives.

Some things to consider when trying to win in this prize category are:

  1. The inspiration behind the problem or need. Did you think of it? Did someone else mention that their lives would be better if they had an app that solved this problem?
  2. How often do you feel someone might use it?
  3. What group of people would you target to use it?
  4. Does the solution make the best use of the strengths of the mobile phone form factor? (i.e. are you building it on a mobile phone just because you can or is a mobile phone the ideal platform for this solution?)
  5. Do the features of the solution you’re developing make sense? Are they necessary? Why?

Rules

  • Participants can come in with an idea but the project must be in the early stages of development (i.e. you are not allowed to submit a project that has been previously submitted as a class assignment, potential startup project, or other solutions currently in development).
  • Bring your own laptop and Android phones for development/testing as these will not be provided
  • Please bring your valid student ID card
  • All participants must enrolled in a post-secondary program (NSCC students will compete in the junior undergraduate-level prize category)
  • Maximum team size is 6 students.
  • All participants must register online in advance of the event start date or at the door on the first day of the hackathon. Please refer to the schedule for more information.
  • To be eligible for prizes, at least one team member must present the team’s solution, in-person, at the hackathon.
  • All prizes will be distributed as per the prize table listed above
  • Prizes are non-negotiable and cannot be substituted

 

Registration

REGISTER

Special thanks to the Dalhousie Computer Science Society (CSS) for their support

 

Firebase Tutorial (Repeat)

Note: This is a repeat of the tutorial offered on Wed, Feb 7th, 2018.

To help students prepare for the upcoming Android hackathon, we are organizing a Firebase tutorial. Others who might not participate in the hackathon and have a general interest in Android mobile application development are also welcome to come.

Due to the popularity of this event, everyone must register in advance (registration form below) and only the first 40 attendees at the door will be permitted entry.

Prerequisites

Please bring your own laptop to this tutorial with Android Studio installed. Some familiarity with Android mobile application development is recommended.

The source files for this workshop can be found here https://goo.gl/4hpnyV.

Tutorial Overview

  • Brief overview of Android Studio (AS)
  • System prerequisites and installing AS on your laptop
  • Installing the Firebase plugin within AS
  • Follow along as instructors demo Firebase capabilities
  • Connecting Firebase to your project within AS
  • Q&A with tutorial instructors

Light snacks/beverages will be served.

Instructors

Dhivya Jayaraman
Currently a Master’s student at the Faculty of Computer Science, Dalhousie University. My area of research is Natural Language Processing (NLP) focusing on extraction of summary from large datasets. Other area of interest includes Machine learning and Deep learning concepts. I also have 2 years of Industry experience in SAP.

Yamani Kakarla
Experienced Graduate Research Assistant with a demonstrated history of working in the higher education industry. Skilled in machine learning, Big data, Cognos, Data Mining, Data Warehousing, User Experience and Test Automation. Strong research professional with a Bachelor’s degree focused in Computer Science from Anna University.
REGISTER

Firebase Tutorial

To help students prepare for the upcoming Android hackathon, we are organizing a Firebase tutorial. Others who might not participate in the hackathon and have a general interest in Android mobile application development are also welcome to come.

Due to the popularity of this event, everyone must register in advance (registration form below) and only the first 40 attendees at the door will be permitted entry.

Prerequisites

Please bring your own laptop to this tutorial with Android Studio installed. Some familiarity with Android mobile application development is recommended.

The source files for this workshop can be found here https://goo.gl/4hpnyV.

Tutorial Overview

  • Brief overview of Android Studio (AS)
  • System prerequisites and installing AS on your laptop
  • Installing the Firebase plugin within AS
  • Follow along as instructors demo Firebase capabilities
  • Connecting Firebase to your project within AS
  • Q&A with tutorial instructors

Light snacks/beverages will be served.

Instructors

Dhivya Jayaraman
Currently a Master’s student at the Faculty of Computer Science, Dalhousie University. My area of research is Natural Language Processing (NLP) focusing on extraction of summary from large datasets. Other area of interest includes Machine learning and Deep learning concepts. I also have 2 years of Industry experience in SAP.

Yamani Kakarla
Experienced Graduate Research Assistant with a demonstrated history of working in the higher education industry. Skilled in machine learning, Big data, Cognos, Data Mining, Data Warehousing, User Experience and Test Automation. Strong research professional with a Bachelor’s degree focused in Computer Science from Anna University.
REGISTER

Hackathon starter pack with Vertx

Learn how to build an web application from scratch using the Vertx framework. Vertx is a reactive microservice framework that allows us to quickly put together our own applications, making it an ideal candidate for hackathons and major projects alike. We’ll set up a PostgresSQL database to persist our data, as well as a simple frontend using bootstrap for our users to interact with. This workshop is beginner friendly, basic knowledge of Java will be assumed, knowledge of HTML/CSS/JS/SQL is useful but not required.

Please come with your own laptop and have the following software pre installed:

REGISTER

An Introduction to Test-Driven Development and Unit Testing with Junit

As the computer science industry trucks on, the software we develop becomes increasingly intricate and complex. Testing after writing chunks of code has become a bad practice – we tend to develop a complex solution with dozens of working parts, but by only testing the solution it becomes difficult to isolate the areas which cause bugs and defects. This is where test-driven development (TDD) and unit testing come in.

TDD is a software engineering paradigm where we write code to test the components of our software alongside the writing of the software itself. We do this with unit testing. Using Java and the versatile IntelliJ IDEA, we will explore the uses of unit testing and how to implement unit tests to simplify and streamline the development process.

Please note, that while the tutor will be using a specific IDE for demonstrations, the actual construction of a unit test is not unique to the IDE. If you are using an IDE other than IntelliJ, please consult its documentation for how to set up a unit test. The tutorial will focus on how to write and structure unit tests.

Please make sure to bring a laptop with you.

Prerequisites

To be best prepared, come with a JUnit compatable editor, such as Eclipse or IntelliJ.  Here are some resources to get set up for the lab.

Instructor Bio

Jonathan McDevitt
Jonathan McDevitt

Jonathan is a graduate of Mount Saint Vincent University (MSVU) and Dalhousie University, with degrees in Arts and Computer Science. Having originally studied under Arts to be a teacher, Jonathan has worked in multiple environments as an instructor – as a teacher in South Korea after his Arts degree from MSVU, and as a tutor and teaching assistant during his Computer Science degree from Dalhousie with Dr. Srini Sampalli. He has always had an interest in exploring different development platforms, which has exposed him to a variety of IDEs (IntelliJ IDEA, Webstorm, Netbeans, Visual Studio, among others) and text editors (Atom, Visual Studio Code, Sublime Text, etc.). Though most of his work has been in Java, Jonathan enjoys exploring alternative languages and their accompanying frameworks, such as C# and .NET, the MEAN stack for web development, and the many frameworks associated with mobile development. He also regularly works with GitHub, able to operate both through command line and IDE interfaces (but heavily preferring the latter).

Alternative IDEs and Debugging – An Introduction to IntelliJ IDEA and Eclipse with OOP

JGrasp is a wonderful tool for learning Java, but once you really start to dig your teeth into advanced coding, it becomes unreasonable to have to do everything manually. That is where alternative IDEs like Eclipse and Jetbrains’ IntelliJ IDEA come into play. During this workshop, we will show you how to get Eclipse and IntelliJ IDEA onto your machine. However, the most important thing about working with new tools is familiarizing yourself with them, so the workshop will also provide some basic programming exercises to help you fiddle around with your new toys – let’s build a LinkedList!

The second part of the workshop will be devoted to discussing some regular debugging practice with the IDEs we have just installed. For this we will be using the LinkedList that we have developed through the workshop.

Prerequisites

  • Development-ready laptop (installed IDEs not required)
  • Successfully completed CSCI 1100 or equivalent introductory Java programming experience
  • An open mind!

Instructor Bio

Jonathan McDevitt
Jonathan McDevitt

Jonathan is a graduate of Mount Saint Vincent University (MSVU) and Dalhousie University, with degrees in Arts and Computer Science. Having originally studied under Arts to be a teacher, Jonathan has worked in multiple environments as an instructor – as a teacher in South Korea after his Arts degree from MSVU, and as a tutor and teaching assistant during his Computer Science degree from Dalhousie with Dr. Srini Sampalli. He has always had an interest in exploring different development platforms, which has exposed him to a variety of IDEs (IntelliJ IDEA, Webstorm, Netbeans, Visual Studio, among others) and text editors (Atom, Visual Studio Code, Sublime Text, etc.). Though most of his work has been in Java, Jonathan enjoys exploring alternative languages and their accompanying frameworks, such as C# and .NET, the MEAN stack for web development, and the many frameworks associated with mobile development. He also regularly works with GitHub, able to operate both through command line and IDE interfaces (but heavily preferring the latter).

Java GUI Hack-a-thon with Spring

To cap off another successful semester, ShiftKey Labs is planning a whopper of an event! Over the weekend of November 25th-27th, learn about front-end Java development using the Spring framework and compete for $1000 in cash prizes!

The goal is simple: Tap into your creativity to build a working software prototype of anything you want using Java and Spring within 48 hours! If you’re new to Spring, don’t worry, we’ll be running a lead-in Spring workshop and technical coaches will be on-hand throughout the event to support.

Any post-secondary student with an interest in Java coding is welcome!

Schedule

Friday, November 25th
5:00 pm Registration
5:30 pm Kick off
5:45 pm Workshop: Java GUI design using Spring and Java coding conventions
6:30 pm Break/Pizza
6:40 pm Workshop continues
8:00 pm End of workshop
END DAY 1
Saturday, November 26th
9:30 am Doors open, coffee/pastries
10:00 am Morning announcements
10:10 am Team formation
10:20 am Idea generation
11:00 am Begin coding!
12:30 pm Catered lunch
6:00 pm Pizza supper
9:00 pm Lab closes but teams are welcome to continue working
END DAY 2
Sunday, November 27th
9:30 am Doors open, coffee/pastries
10:00 am Continue coding!
12:30 pm Working lunch: Wrap up coding, create presentation/demo material
3:00 pm Project demos (max 5 minutes per team including questions from judges)
4:00 pm Judging
4:30 pm Winning teams announced, prizes awarded, certificates of participation for all students
4:45 pm Judges to lead feedback session for each team
END EVENT @ 5:00 PM

Project Suggestions

The following project suggestions might help those looking for some inspiration. Of course, you are free to (actually… encouraged to) develop whatever idea/project you want!

Task Scheduler:
— Based on availability of resources design a system that can intelligently identify a resource in nearest location and assign the task. The idea is that a manager should be able to assign 100s of tasks in one click and system identify and assign task based on some rule
In/Out of Office Presence System:
— A digital sign showing if a person was in or out of the office based on entries in their calendar system. The display should be optimized for easy reading and clean/intuitive layout. Imagine affixing a cheap Android tablet to a door.
Food ordering and delivery:
— Implement an intelligent system that can suggest restaurants and menu items based on user choices looking at the past history of orders. And then order the available and selected menu item with delivery system.
E-Signature tool:
— Design a simple e-signature tool that can capture a signature with a simple click on a box and communicate through validating emails.
Minesweeper game
— Implement minesweeper game using effective techniques of flagging and time clock intervals. Also provide ability for competitions of multiple users.
Online Book Rentals
— Design an online system where students can exchange books and can rent them from each other.

Judging Criteria

A small panel of technical judges will evaluate 5-minute demos and project code (no PowerPoint please!) against the criteria listed below. All teams must deploy their final code to a GitHub repository and their working solutions to a cloud environment.

Points Item Criteria
/5 Impressiveness/Creativity – Team delivers something interesting/impressive

– Creativity

– Originality

/5 Quality/Features – Does the software compile/execute?

– Do software crashes/bugs detract from the demo or prevent the presenting team from demoing?

– Are the features relevant for the intended purpose?

/5 Design – Does the solution make good use of Spring framework recommendations and standards?

– Does code make use of interfaces, abstract classes, inheritance and encapsulation?

– Any design pattern followed?

– Unit test coverage?

– Are exceptions handled properly?

– Is logging performed properly?

/5 Java Coding Conventions – Do variable names and function names follow naming conventions and standards?

– Are nested if-else statements restricted to not go beyond 2 levels deep?

– Are compound statements separated by parentheses and line breaks where applicable?

– Is indentation used properly and variable declarations done in the beginning of the method?

– Use of constants and static variables properly executed?

/20

Prizes

A total of $1000 will be distributed as cash prizes to winning teams.

Resources

The following resources will be helpful in advance of, and during, the hack-a-thon:

All teams are required to host their code in a GitHub environment for demo/judging purposes.

Event organizers will also recommend an ideal deployment environment (preferably cloud hosting) each team can use to host their code and final working solution but you are free to use whatever you want. Additional information will be posted here soon.

Nov 25 @ 1:45pm update

Please access the following GitHub repo for the event at https://github.com/suhaibqaiser/java-spring-hackathon. We have also created a java-gui-hack-tutorial-and-resources primer file [MS Word] to help set you on the right track.

Coaches

Faisal Abbas

Faisal is an experienced software engineer specializing in Natural Language Processing and working as a senior developer in QRA. He refers to himself as a polyglot programmer and technology agnostic. He has special knowledge working in web domain including mobile and cloud computing. He has worked on several big projects and took them to completion. He is a seasoned developer and also has served as instructors in Saint Mount University and at NSCC.

email: faisal at abbas.consulting

Divya Dola

Currently, Divya Dola is a Masters in Computer Science student at Dalhousie University that is in the process of finishing her academic project and graduating soon. Divya has worked for Chegg Inc. in the past as a Subject Matter Expert and is currently working on a research project with the Boeing company for task resumptions for 3D models on different sized touch devices. She is a Sun Microsystems trained Java Developer (now Oracle Corp.) during which she had gained extensive practical knowledge in developing Java based GUI applications using Spring, Hibernate and MySQL.

email: divyadola02 at gmail.com

Syed Shahzeb Hasnain

Syed Shahzeb Hasnain is a MACS candidate here at Dalhousie University. He is also a Microsoft Certified Professional who has extensive experience in the financial banking industry. Currently a Research Assistant and Project Manager for Dalhousie Entrepreneurship Society, architecture development has always been a passion for him and has worked with various projects dealing with cloud, mobile and web technologies.
Loves coffee, cookies, Coca Cola and code!

email: syed.hasnain at dal.ca

Waqas Javed

Waqas is an extremely motivated and enthusiastic Software Developer with 8 years of professional experience. He has a strong educational background in Computer Science and past work experiences in highly dynamic and fast paced environment has allowed him to excel in Java, JSP, Spring JSF, Dot Net and related web technologies.

He is currently working for IBM as a senior developer and team lead and actively using JSF and J2EE technologies to build a huge health based product. He also posses extensive knowledge in Android development and his solely-owned product “Bus App” is actively running and have hundreds of users all over North America.

email: waqas1.2000 at gmail.com

FAQ’s

What is the maximum team size?

The maximum team size is 4 people.

Can I form a team in advance?

Yes.

Can I register if I don’t have a team?

Yes. On Saturday morning, everyone who is not already part of a team can meet new people and form/join a team.

I’ve just started learning to program (in Java), should I participate?

Of course! The event is designed to help any student currently in a CS/technical degree learn more about (Java) coding/frameworks. If you are eager to challenge yourself, this event is perfect for you. Not only can you learn by exploring some of the resources listed above but you will also learn a lot about coding/Java in the Friday workshop and from other more experienced coders as part of your team and technical coaches at the event.

So teams can literally develop a software program on anything they want?

Yes! Hack-a-thons are the perfect opportunity to try out highly experimental, creative, and original ideas as you’re not constrained by academic or commercial requirements. The hack-a-thon judging criteria has been designed to support this mindset, your team’s ability to make good use of the Spring framework and good coding practices.

If you choose to develop an idea with some commercial potential, you will have the opportunity to receive additional technical and business support directly from ShiftKey Labs and its network of partners.

Can I participate remotely?

No. All participants must attend the event in-person and work directly with your team to actively develop the idea and software.

Do I need to bring my own laptop?

Yes. If you would like to use another computer, for whatever reason, there are 4 desktops (3 with Windows 10, 1 Ubuntu 16.10) with full administrative access available for use during the event.

Registration

Please use the following form to register. Online registration will close on Wednesday, November 23rd at 4:00 pm. All online registrants are guaranteed entry.

Late registrations will still be accepted in-person until Friday, November 25th at 5:30 pm (i.e. the start of the workshop) in ShiftKey Labs on a first-come, first-served basis. Space is limited so don’t delay!

Learn Effective Programming

Hello Folks!

Thanks for contributing towards this meetup and joining regularly with your new ideas and support. In our next meetup we will do a collaborative session where everyone in the group will share their ideas on how s/he learned programming.

This meetup will be all about basics of programming and differences in approach everyone took to learn to code their first program.

We will touch base on different programming languages like Java, C++, Python, C#, Fortran, and obviously JavaScript and see how effective a programmer can code when different languages come into the picture.

Please don’t feel hesitant about sharing your experience even if it is a single line of code because that will help others in the group to get insight into what things are necessary to learn programming.

We will not talk about any framework or design pattern and will try to keep it very basic. Just learn how to program and have fun talking in the group.

Registration Form

[ninja_forms id=187]