diff --git a/server/app/apis/__init__.py b/server/app/apis/__init__.py
index 683b61c02b3d48caf29e38470d878b3a38f62ae7..e76f8bc51f3a3f08b080334db75b17bad7528647 100644
--- a/server/app/apis/__init__.py
+++ b/server/app/apis/__init__.py
@@ -55,6 +55,9 @@ def item_response(item, code=http_codes.OK):
 
 from flask_restx import Api
 
+from .alternatives import api as alternative_ns
+
+# from .answers import api as answer_ns
 from .auth import api as auth_ns
 from .codes import api as code_ns
 from .competitions import api as comp_ns
@@ -73,6 +76,8 @@ flask_api.add_namespace(user_ns, path="/api/users")
 flask_api.add_namespace(auth_ns, path="/api/auth")
 flask_api.add_namespace(comp_ns, path="/api/competitions")
 flask_api.add_namespace(slide_ns, path="/api/competitions/<CID>/slides")
+flask_api.add_namespace(alternative_ns, path="/api/competitions/<CID>/slides/<SOrder>/questions/<QID>/alternatives")
+# flask_api.add_namespace(answer_ns, path="/api/competitions/<CID>/slides/<SOrder/questions/<QID>/answers")
 flask_api.add_namespace(team_ns, path="/api/competitions/<CID>/teams")
 flask_api.add_namespace(code_ns, path="/api/competitions/<CID>/codes")
 flask_api.add_namespace(question_ns, path="/api/competitions/<CID>")
diff --git a/server/app/apis/alternatives.py b/server/app/apis/alternatives.py
new file mode 100644
index 0000000000000000000000000000000000000000..db36883c0190c85c35c2549a80f9f1fd93d07547
--- /dev/null
+++ b/server/app/apis/alternatives.py
@@ -0,0 +1,47 @@
+import app.core.http_codes as codes
+import app.database.controller as dbc
+from app.apis import check_jwt, item_response, list_response
+from app.core.dto import QuestionAlternativeDTO, QuestionDTO
+from app.core.parsers import question_alternative_parser
+from app.core.schemas import QuestionAlternativeSchema
+from app.database.controller.add import question_alternative
+from app.database.controller.get import question_alternatives
+from app.database.models import Question, QuestionAlternative
+from flask_jwt_extended import jwt_required
+from flask_restx import Resource
+
+api = QuestionAlternativeDTO.api
+schema = QuestionAlternativeDTO.schema
+list_schema = QuestionAlternativeDTO.list_schema
+
+
+@api.route("/")
+@api.param("CID, SOrder, QID")
+class QuestionAlternativeList(Resource):
+    @check_jwt(editor=True)
+    def get(self, CID, SOrder, QID):
+        items = dbc.get.question_alternatives(QID)
+        return list_response(list_schema.dump(items))
+
+    @check_jwt(editor=True)
+    def post(self, CID, SOrder, QID):
+        args = question_alternative_parser.parse_args(strict=True)
+        item = dbc.add.question_alternative(**args, question_id=QID)
+        return item_response(schema.dump(item))
+
+
+@api.route("/<AID>")
+@api.param("CID, SOrder, QID, AID")
+class QuestionAlternativeList(Resource):
+    @check_jwt(editor=True)
+    def put(self, CID, SOrder, QID, AID):
+        args = question_alternative_parser.parse_args(strict=True)
+        item = dbc.get.one(QuestionAlternative, AID)
+        item = dbc.edit.question_alternative(item, **args)
+        return item_response(schema.dump(item))
+
+    @check_jwt(editor=True)
+    def delete(self, CID, SOrder, QID, AID):
+        item = dbc.get.one(QuestionAlternative, AID)
+        dbc.delete.default(item)
+        return {}, codes.NO_CONTENT
diff --git a/server/app/apis/questions.py b/server/app/apis/questions.py
index f486e3493b09070b5da145c48f497ea30792164e..7d16d3c89e660345c510d84dc645f111dbd7fbf4 100644
--- a/server/app/apis/questions.py
+++ b/server/app/apis/questions.py
@@ -14,7 +14,7 @@ list_schema = QuestionDTO.list_schema
 
 @api.route("/questions")
 @api.param("CID")
-class QuestionsList(Resource):
+class QuestionList(Resource):
     @check_jwt(editor=True)
     def get(self, CID):
         items = dbc.get.question_list(CID)
@@ -23,7 +23,7 @@ class QuestionsList(Resource):
 
 @api.route("/slides/<SID>/questions")
 @api.param("CID, SID")
-class QuestionsList(Resource):
+class QuestionListForSlide(Resource):
     @check_jwt(editor=True)
     def post(self, SID, CID):
         args = question_parser.parse_args(strict=True)
@@ -37,7 +37,7 @@ class QuestionsList(Resource):
 
 @api.route("/slides/<SID>/questions/<QID>")
 @api.param("CID, SID, QID")
-class Questions(Resource):
+class QuestionById(Resource):
     @check_jwt(editor=True)
     def get(self, CID, SID, QID):
         item_question = dbc.get.question(CID, SID, QID)
diff --git a/server/app/core/dto.py b/server/app/core/dto.py
index 034826f5fb784bca39bc85c355d767ccc7ab1498..c1e66223d14a27ea460ee67db106478e6ede989e 100644
--- a/server/app/core/dto.py
+++ b/server/app/core/dto.py
@@ -68,3 +68,15 @@ class QuestionDTO:
     api = Namespace("questions")
     schema = schemas.QuestionSchema(many=False)
     list_schema = schemas.QuestionSchema(many=True)
+
+
+class QuestionAlternativeDTO:
+    api = Namespace("alternatives")
+    schema = schemas.QuestionAlternativeSchema(many=False)
+    list_schema = schemas.QuestionAlternativeSchema(many=True)
+
+
+# class QuestionAnswerDTO:
+#     api = Namespace("answers")
+#     schema = schemas.QuestionAnswerSchema(many=False)
+#     list_schema = schemas.QuestionAnswerSchema(many=True)
diff --git a/server/app/core/parsers.py b/server/app/core/parsers.py
index f5536cf2f1f0f5e0a751bb70257b9f6f35278d4e..5a91755862b858a4eaf44e0c6ee825d8b528451f 100644
--- a/server/app/core/parsers.py
+++ b/server/app/core/parsers.py
@@ -60,7 +60,14 @@ question_parser.add_argument("total_score", type=int, default=None, location="js
 question_parser.add_argument("type_id", type=int, default=None, location="json")
 question_parser.add_argument("slide_id", type=int, location="json")
 
-###QUESTION####
+
+###QUESTION ALTERNATIVES####
+question_alternative_parser = reqparse.RequestParser()
+question_alternative_parser.add_argument("text", type=str, default=None, location="json")
+question_alternative_parser.add_argument("value", type=int, default=None, location="json")
+
+
+###CODE####
 code_parser = reqparse.RequestParser()
 code_parser.add_argument("pointer", type=str, default=None, location="json")
 code_parser.add_argument("view_type_id", type=int, default=None, location="json")
diff --git a/server/app/core/rich_schemas.py b/server/app/core/rich_schemas.py
index a890489e23a30aef19c41b1cfc105d9954c68d37..8852c392c4a060a065f618a66393e55b8a2627a8 100644
--- a/server/app/core/rich_schemas.py
+++ b/server/app/core/rich_schemas.py
@@ -20,7 +20,7 @@ class QuestionSchemaRich(RichSchema):
     total_score = ma.auto_field()
     slide_id = ma.auto_field()
     type_id = ma.auto_field()
-    alternatives = fields.Nested(schemas.QuestionAlternative, many=True)
+    alternatives = fields.Nested(schemas.QuestionAlternativeSchema, many=True)
 
 
 class TeamSchemaRich(RichSchema):
diff --git a/server/app/core/schemas.py b/server/app/core/schemas.py
index ff561491ac12644abda6e004efbec12a54becb77..70bb2e2cf4ba211bee366115b9e1a4bca80b8aa9 100644
--- a/server/app/core/schemas.py
+++ b/server/app/core/schemas.py
@@ -68,7 +68,7 @@ class QuestionAnswerSchema(BaseSchema):
     team_id = ma.auto_field()
 
 
-class QuestionAlternative(BaseSchema):
+class QuestionAlternativeSchema(BaseSchema):
     class Meta(BaseSchema.Meta):
         model = models.QuestionAlternative
 
diff --git a/server/app/database/controller/add.py b/server/app/database/controller/add.py
index de0135f2f514745017b85f654f4afc3203b69975..45a13d71fed88374c9c20b4cade24652e7430bc7 100644
--- a/server/app/database/controller/add.py
+++ b/server/app/database/controller/add.py
@@ -15,6 +15,7 @@ from app.database.models import (
     Media,
     MediaType,
     Question,
+    QuestionAlternative,
     QuestionType,
     Role,
     Slide,
@@ -114,6 +115,10 @@ def question(name, total_score, type_id, item_slide):
     return db_add(Question(name, total_score, type_id, item_slide.id))
 
 
+def question_alternative(text, value, question_id):
+    return db_add(QuestionAlternative(text, value, question_id))
+
+
 def code(pointer, view_type_id):
     """ Adds a code to the database using the provided arguments. """
 
diff --git a/server/app/database/controller/edit.py b/server/app/database/controller/edit.py
index 52471badd4edc43ff503436f4f9dbbb65a580c6c..aa75b67bd4ce470b702c4ad8b15afcaa6727f918 100644
--- a/server/app/database/controller/edit.py
+++ b/server/app/database/controller/edit.py
@@ -125,3 +125,17 @@ def question(item_question, name=None, total_score=None, type_id=None, slide_id=
     db.session.refresh(item_question)
 
     return item_question
+
+
+def question_alternative(item, text=None, value=None):
+
+    if text:
+        item.text = text
+
+    if value:
+        item.value = value
+
+    db.session.commit()
+    db.session.refresh(item)
+
+    return item
diff --git a/server/app/database/controller/get.py b/server/app/database/controller/get.py
index f7d14914957066b6ac90bad09b16745bc9a59262..efe30d12e1a24c25178d0e3822a7cd02fccdacb2 100644
--- a/server/app/database/controller/get.py
+++ b/server/app/database/controller/get.py
@@ -12,6 +12,7 @@ from app.database.models import (
     ComponentType,
     MediaType,
     Question,
+    QuestionAlternative,
     QuestionType,
     Role,
     Slide,
@@ -78,6 +79,11 @@ def question(CID, SOrder, QID, required=True, error_msg=None):
     return Question.query.join(Slide, join_filters).filter(Question.id == QID).first_extended(required, error_msg)
 
 
+def question_alternatives(QID):
+    # join_filters = (Slide.competition_id == CID) & (Slide.order == SOrder)
+    return QuestionAlternative.query.filter(QuestionAlternative.question_id == QID).all()
+
+
 def competition(CID):
     """ Get Competition and all it's sub-entities """
     """ HOT PATH """
diff --git a/server/app/database/models.py b/server/app/database/models.py
index da9e0620b55bf20c6b2ab11bbc4b3ea4a80fe661..2c16fdac26611805a20f6c9dfc72aad97dc48c68 100644
--- a/server/app/database/models.py
+++ b/server/app/database/models.py
@@ -160,7 +160,7 @@ class Question(db.Model):
 class QuestionAlternative(db.Model):
     id = db.Column(db.Integer, primary_key=True)
     text = db.Column(db.String(STRING_SIZE), nullable=False)
-    value = db.Column(db.Boolean, nullable=False)
+    value = db.Column(db.Integer, nullable=False)
     question_id = db.Column(db.Integer, db.ForeignKey("question.id"), nullable=False)
 
     def __init__(self, text, value, question_id):