Index: FullyStocked/src/main/java/com/bazi/fullystocked/Models/Articles.java
===================================================================
--- FullyStocked/src/main/java/com/bazi/fullystocked/Models/Articles.java	(revision cd2209e5aa4d639e8411637bcf21efdd7fbecab6)
+++ FullyStocked/src/main/java/com/bazi/fullystocked/Models/Articles.java	(revision f11774eff105c24771dd2a4e535b23a93ce00d42)
@@ -41,3 +41,10 @@
         this.maxquantityperlocation = maxquantityperlocation;
     }
+
+    public Articles(String description, String articlename, String imageurl, int maxquantityperlocation) {
+        this.description = description;
+        this.articlename = articlename;
+        this.imageurl = imageurl;
+        this.maxquantityperlocation = maxquantityperlocation;
+    }
 }
Index: FullyStocked/src/main/java/com/bazi/fullystocked/Services/ArticlesService.java
===================================================================
--- FullyStocked/src/main/java/com/bazi/fullystocked/Services/ArticlesService.java	(revision f11774eff105c24771dd2a4e535b23a93ce00d42)
+++ FullyStocked/src/main/java/com/bazi/fullystocked/Services/ArticlesService.java	(revision f11774eff105c24771dd2a4e535b23a93ce00d42)
@@ -0,0 +1,10 @@
+package com.bazi.fullystocked.Services;
+
+import com.bazi.fullystocked.Models.Articles;
+import java.util.*;
+
+public interface ArticlesService {
+    Optional<Articles> create(String description, String articlename, int maxquantityperlocation);
+    Optional<Articles> create(String description, String articlename, String imageurl, int maxquantityperlocation);
+    Optional<Articles> addToCategory(Integer articleId, Integer categoryId);
+}
Index: FullyStocked/src/main/java/com/bazi/fullystocked/Services/Implementations/ArticlesServiceImpl.java
===================================================================
--- FullyStocked/src/main/java/com/bazi/fullystocked/Services/Implementations/ArticlesServiceImpl.java	(revision f11774eff105c24771dd2a4e535b23a93ce00d42)
+++ FullyStocked/src/main/java/com/bazi/fullystocked/Services/Implementations/ArticlesServiceImpl.java	(revision f11774eff105c24771dd2a4e535b23a93ce00d42)
@@ -0,0 +1,51 @@
+package com.bazi.fullystocked.Services.Implementations;
+
+import com.bazi.fullystocked.Models.Articles;
+import com.bazi.fullystocked.Models.Categories;
+import com.bazi.fullystocked.Models.Exceptions.InvalidArgumentsException;
+import com.bazi.fullystocked.Repositories.ArticlesRepository;
+import com.bazi.fullystocked.Repositories.CategoriesRepository;
+import com.bazi.fullystocked.Services.ArticlesService;
+import org.springframework.stereotype.Service;
+
+import javax.transaction.Transactional;
+import java.util.Optional;
+
+@Service
+public class ArticlesServiceImpl implements ArticlesService {
+    private final ArticlesRepository articlesRepository;
+    private final CategoriesRepository categoriesRepository;
+
+    public ArticlesServiceImpl(ArticlesRepository articlesRepository, CategoriesRepository categoriesRepository) {
+        this.articlesRepository = articlesRepository;
+        this.categoriesRepository = categoriesRepository;
+    }
+
+    @Override
+    public Optional<Articles> create(String description, String articlename, int maxquantityperlocation) {
+        if(description==null || description.isEmpty() || articlename==null || articlename.isEmpty() || maxquantityperlocation<=0)
+        {
+            throw new InvalidArgumentsException();
+        }
+        return Optional.of(articlesRepository.save(new Articles(description, articlename, maxquantityperlocation)));
+    }
+
+    @Override
+    public Optional<Articles> create(String description, String articlename, String imageurl, int maxquantityperlocation) {
+        if(description==null || description.isEmpty() || articlename==null || articlename.isEmpty() || maxquantityperlocation<=0)
+        {
+            throw new InvalidArgumentsException();
+        }
+        return Optional.of(articlesRepository.save(new Articles(description, articlename, imageurl, maxquantityperlocation)));
+    }
+
+    @Override
+    @Transactional
+    public Optional<Articles> addToCategory(Integer articleId, Integer categoryId) {
+        Categories category=categoriesRepository.findById(categoryId).orElseThrow(InvalidArgumentsException::new);
+        Articles articles=articlesRepository.findById(articleId).orElseThrow(InvalidArgumentsException::new);
+        articles.getCategoryList().add(category);
+        articlesRepository.save(articles);
+        return Optional.of(articles);
+    }
+}
