diff --git a/k4ever/api/__init__.py b/k4ever/api/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/k4ever/api/models.py b/k4ever/api/models.py
new file mode 100644
index 0000000..71a8362
--- /dev/null
+++ b/k4ever/api/models.py
@@ -0,0 +1,3 @@
+from django.db import models
+
+# Create your models here.
diff --git a/k4ever/api/tests.py b/k4ever/api/tests.py
new file mode 100644
index 0000000..2247054
--- /dev/null
+++ b/k4ever/api/tests.py
@@ -0,0 +1,23 @@
+"""
+This file demonstrates two different styles of tests (one doctest and one
+unittest). These will both pass when you run "manage.py test".
+
+Replace these with more appropriate tests for your application.
+"""
+
+from django.test import TestCase
+
+class SimpleTest(TestCase):
+ def test_basic_addition(self):
+ """
+ Tests that 1 + 1 always equals 2.
+ """
+ self.failUnlessEqual(1 + 1, 2)
+
+__test__ = {"doctest": """
+Another way to test that 1 + 1 is equal to 2.
+
+>>> 1 + 1 == 2
+True
+"""}
+
diff --git a/k4ever/api/urls.py b/k4ever/api/urls.py
new file mode 100644
index 0000000..5434be8
--- /dev/null
+++ b/k4ever/api/urls.py
@@ -0,0 +1,9 @@
+from django.conf.urls.defaults import *
+
+#/api/
+urlpatterns = patterns('',
+ (r'^store/$', 'api.views.showItems'),
+ (r'^store/show/(\d+)/$', 'api.views.showItem'),
+ (r'^store/buy/(\d+)/(|with/deposit|only/deposit)/?$', 'api.views.buyItem'),
+ (r'^store/history/?$', 'api.views.history'),
+)
diff --git a/k4ever/api/views.py b/k4ever/api/views.py
new file mode 100644
index 0000000..1873c83
--- /dev/null
+++ b/k4ever/api/views.py
@@ -0,0 +1,72 @@
+# -*- coding: utf-8 -*-
+from django.contrib.auth.decorators import login_required
+from django.http import HttpResponse
+
+import datetime
+from buyable.models import Buyable, Purchase, Order
+from django.core import serializers
+
+
+@login_required
+def showItems(request):
+ # FIXME: Implement pagination here
+ items = Buyable.objects.all()
+
+ #return json-container
+ container = serializers.serialize('json', items)
+ return HttpResponse(container,'application/javascript')
+
+@login_required
+def showItem(request, itemid):
+ try:
+ item = Buyable.objects.get(id=itemid)
+ except Buyable.DoesNotExist:
+ # baww, kein item mit der id :( (oder mutax trollt rum)
+ return HttpResponse(status=400)
+
+ #return json-container
+ container = serializers.serialize('json', [item])
+ return HttpResponse(container,'application/javascript')
+
+
+@login_required
+def buyItem(request, itemid, buymode=""):
+ user = request.user
+ try:
+ item = Buyable.objects.get(id=itemid)
+ except Buyable.DoesNotExist:
+ # oh no! kein item mit der id :( mutax trollt rum)
+ return HttpResponseRedirect("/store/buy/")
+ """ tristate variable buymode:
+ "" only item
+ "with/deposit" item and deposit
+ "only/deposit" only deposit
+ """
+ order = Order()
+ order.create(user)
+ order.save() # for the id!
+ if buymode == "" or buymode == "with/deposit":
+ p = Purchase.create(order, item, isDeposit=False)
+ p.order = order
+ p.save()
+ # TANNEK! if buymode == "with/dopsit" or buymode == "only/deposit":
+ if buymode == "with/deposit" or buymode == "only/deposit":
+ p = Purchase.create(order, item, isDeposit=True)
+ p.order = order
+ p.save()
+ order.updatePrice(commit=True)
+ order.save()
+
+ #return json-container
+ #container = serializers.serialize('json', items)
+ #return HttpResponse(container,'application/javascript')
+ return HttpResponse(status=200)
+ #return HttpResponseRedirect("/store/bought/%s/" % (order.id))
+
+@login_required
+def history(request):
+ hist = Order.objects.filter(user=request.user.id).order_by("-dateTime")
+ #return json-container
+ container = serializers.serialize('json', [hist])
+ return HttpResponse(container,'application/javascript')
+
diff --git a/k4ever/k4ever.db b/k4ever/k4ever.db
index a822f24..1129fea 100644
Binary files a/k4ever/k4ever.db and b/k4ever/k4ever.db differ
diff --git a/k4ever/main/templates/main/startpage.html b/k4ever/main/templates/main/startpage.html
index 54335c6..33d9986 100644
--- a/k4ever/main/templates/main/startpage.html
+++ b/k4ever/main/templates/main/startpage.html
@@ -1,8 +1,19 @@
{% extends "base.html" %}
{% block "content" %}
+ {% if allMost %}
+ Am beliebtesten ist:
+ {% for buyable in allMost %}
+ {{ buyable.buyable__name }} ( {{ buyable.num_buys }} mal)
+ {% endfor %}
+
+ {% else %}
+ {{ error }}
+ Noch niemand hat was gekauft?
+ {% endif %}
+