diff --git a/src/core/urls.py b/src/core/urls.py
index 88a9caca8cebb2a058d9dd370373eee8ec7a89cb..2c7160de4af283c1cbc88af9b61b11390e6669bd 100644
--- a/src/core/urls.py
+++ b/src/core/urls.py
@@ -4,4 +4,6 @@ from . import views
 
 urlpatterns = [
     path('', views.index, name='index'),
+    path('success/', views.success, name='success'),
+    path('failure/', views.failure, name='failure'),
 ]
diff --git a/src/core/views.py b/src/core/views.py
index 4396c7e16c948dc9b872a91aa20f045d303283e8..b0a46839529ef07da8dbb419cc48f16de795707c 100644
--- a/src/core/views.py
+++ b/src/core/views.py
@@ -1,4 +1,22 @@
 from django.shortcuts import render
+from django.http import HttpResponseRedirect
+
+from .models import GitlabAccountRequestForm
 
 def index(request):
-    return render(request, 'core/base.html')
+    if request.method == "POST":
+        form = GitlabAccountRequestForm(request.POST)
+
+        if form.is_valid():
+            form.save()
+            return HttpResponseRedirect('/success/')
+
+        return HttpResponseRedirect('/failure/')
+
+    return render(request, 'core/signup.html')
+
+def success(request):
+    return render(request, 'core/success.html')
+
+def failure(request):
+    return render(request, 'core/failure.html')