BeerBase

grp3 (losers) – Antti Turpeinen (0279034) & Lauri Hämäläinen (0258767) & Juho Tarikka (0260425)

Idea

After a very long meditation we got superb idea, BeerBase, the application which contains a database of beers on an android mobile device. The application allows user personally rate and edit information of beer and add new beers to the database. Application is designed for beer loving people who likes to take notes and rate beers (mostly imported) they've drank.

BeerBase is an ideal application while tasting some beer on the road. Sometimes it's difficult to remember what you have been drinking, particularly in pubs and restaurants when you might not able to obtain the container. Majority of these places doesn't have computer for public internet use also. Even remembering beer name correctly doesn't help because some beers are very close in style but can vary quality-wise. Adding beer to a mobile database on-the-fly helps keeping track your taste, so you don't waste time drinking bad beers again.

Features

1 = most critical or core .. least critical or core feature

Feature Priority
Creating database 3
Layouts 3
Beer pictures 2
Adding & removing 2
List sorting 2
Search and database changelog 1
Camera support 1
Remote database 1

Mini Goals (answer to what's next)

  • Database - ok
  • Listing - ok, list sorting - dropped
  • Item selection, removing, saving, editing, naming - ok. notification on save - ok
  • Rating - ok
  • Buttons and layout - ok
  • Graphical design - ok
  • Camera support - ok
  • wiki - penging
  • presentation - ok
  • video - ok

Design

Launching application opens a view which contains list of beers and their rating. This view have button for adding a new beer. From this list user can open new page for viewing beer details wich is also used for editing and removing a beer (adding comments, pictures, rating, alcohol by volume, brewery, beer style). This data is stored in a SQLite database and fetched when required.

Rating is indicated by slidable stars that user can set in 0.5 steps between one and five stars. A notification is shown in the android notification area when saving beer details and user is asked for corfirmation when removing a beer.

Below is an UML class diagram which shows application's main classes. Beer class is used to transfer beer information between database and different views, so it hides the database from other classes. MainActivity is used to handle main view which contains a list of all beers. BeerForm is used to show specified beer information, it is also used to create new beers. PictureForm is used to show beer's picture. CameraActivity is used to take camera shots.

UML class diagram

- Icon 48×48, for application launcher

Screen shots

Video tells more than screenshots!

BeerBase video

Implementation Comments

Creating database gave little trouble because of the database file in the phone didn't update itself every time we drove the program. Of course there would've been option to reset all the user settings from the phone on every boot, but we didn't want to start emulator all the time.

Implementation of the taking picture option were surprisingly easy thanks to google's android developing tutorial sites.

Presentation

Presentation: beerbase_tmp.pdf

Brochure: brochure.pdf

Description: description.pdf

Package

APK package: beerbase.zip

Source code: beerbase_sourcecode.zip

How to run

Nothing fancy. Just start virtual devise and run “adb install /path/beerbase.apk” in command line.

Conclusion of your work

(what was good, what was bad, impressive or depressive things in android development)

  • Android emulator gave a good emulation of the real device. It was fast enough.
  • Development framework is up to date and suitable for mobile devices. Bad thing is that it isn't compatible with original Java. But for us it didn't matter because we are not so familiar with SUN's Java.
  • Framework's GUI could be better.
  • Known issues: Camera button disabled in emulator → green phone button is used for taking picture.
  • Features dropped (because time limit):
    • Remote database
    • link support
    • search function
    • database changelog
    • list sorting
    • default beer picture