Index: src/main/java/it/finki/tinki/bootstrap/DataHolder.java
===================================================================
--- src/main/java/it/finki/tinki/bootstrap/DataHolder.java	(revision efdb71aa1757424fe04a51abea579db929017293)
+++ src/main/java/it/finki/tinki/bootstrap/DataHolder.java	(revision 29c0ed05a0ff3f024a6b10413869f3713f7fca12)
@@ -1,9 +1,15 @@
 package it.finki.tinki.bootstrap;
 
+import it.finki.tinki.model.Address;
 import it.finki.tinki.model.Skill;
-import it.finki.tinki.repository.SkillRepository;
+import it.finki.tinki.model.Users.Company;
+import it.finki.tinki.model.Users.User;
+import it.finki.tinki.model.enumerator.AccountType;
+import it.finki.tinki.repository.*;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.PostConstruct;
+import java.util.ArrayList;
+import java.util.List;
 
 @Component
@@ -11,7 +17,15 @@
 
     SkillRepository skillRepository;
+    UserRepository userRepository;
+    CompanyRepository companyRepository;
+    TeamRepository teamRepository;
+    AddressRepository addressRepository;
 
-    public DataHolder(SkillRepository skillRepository) {
+    public DataHolder(SkillRepository skillRepository, UserRepository userRepository, CompanyRepository companyRepository, TeamRepository teamRepository, AddressRepository addressRepository) {
         this.skillRepository = skillRepository;
+        this.userRepository = userRepository;
+        this.companyRepository = companyRepository;
+        this.teamRepository = teamRepository;
+        this.addressRepository = addressRepository;
     }
 
@@ -41,4 +55,7 @@
             skillRepository.save(s0);
         }
+
+        addressRepository.save(new Address("asdf", "asdf", "asdf"));
+        companyRepository.save(new Company("asdf@asdf", "pass", "Co.co", AccountType.COMPANY, addressRepository.findAll().get(0)));
     }
 
Index: src/main/java/it/finki/tinki/controller/TestController.java
===================================================================
--- src/main/java/it/finki/tinki/controller/TestController.java	(revision efdb71aa1757424fe04a51abea579db929017293)
+++ src/main/java/it/finki/tinki/controller/TestController.java	(revision 29c0ed05a0ff3f024a6b10413869f3713f7fca12)
@@ -1,44 +1,33 @@
 package it.finki.tinki.controller;
 
-import it.finki.tinki.helper.Matchmaker;
-import it.finki.tinki.model.Jobs.Internship;
-import it.finki.tinki.model.Jobs.Job;
-import it.finki.tinki.model.Jobs.Work;
-import it.finki.tinki.model.Skill;
+import it.finki.tinki.model.Users.Account;
+import it.finki.tinki.model.Users.Company;
+import it.finki.tinki.model.Users.Team;
+import it.finki.tinki.model.Users.User;
+import it.finki.tinki.model.enumerator.AccountType;
+import it.finki.tinki.model.pojo.AccountLoginDataPojo;
+import it.finki.tinki.repository.CompanyRepository;
 import it.finki.tinki.repository.JobRepository;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import it.finki.tinki.repository.TeamRepository;
+import it.finki.tinki.repository.UserRepository;
+import it.finki.tinki.service.AccountService;
+import org.springframework.web.bind.annotation.*;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
 
 @RestController
-@RequestMapping("/")
+@RequestMapping("/api")
 public class TestController {
 
-    JobRepository jobRepository;
+    AccountService accountService;
 
-    public TestController(JobRepository jobRepository) {
-        this.jobRepository = jobRepository;
+    public TestController(AccountService accountService) {
+        this.accountService = accountService;
     }
 
-    @GetMapping
-    public String testPage(){
-        Matchmaker match = new Matchmaker();
-        List<Skill> skills = new ArrayList<>();
-
-        skills.add(new Skill("C++"));
-        skills.add(new Skill("Java"));
-        skills.add(new Skill("Python"));
-
-        List<Skill> user = new ArrayList<>();
-
-        user.add(new Skill("Java"));
-        user.add(new Skill("Python"));
-
-        System.out.println(match.match(skills, user));
-
-        return "Hello";
+    @PostMapping(path = "/login")
+    public Account testPage(@RequestBody AccountLoginDataPojo body){
+        return accountService.findUser(body.getAccount(), body.getPassword(), body.getType());
     }
 
Index: src/main/java/it/finki/tinki/model/Users/Account.java
===================================================================
--- src/main/java/it/finki/tinki/model/Users/Account.java	(revision efdb71aa1757424fe04a51abea579db929017293)
+++ src/main/java/it/finki/tinki/model/Users/Account.java	(revision 29c0ed05a0ff3f024a6b10413869f3713f7fca12)
@@ -15,5 +15,7 @@
     Long id;
 
+    @Column(unique = true)
     String email;
+
     String password;
 
Index: src/main/java/it/finki/tinki/model/pojo/AccountLoginDataPojo.java
===================================================================
--- src/main/java/it/finki/tinki/model/pojo/AccountLoginDataPojo.java	(revision 29c0ed05a0ff3f024a6b10413869f3713f7fca12)
+++ src/main/java/it/finki/tinki/model/pojo/AccountLoginDataPojo.java	(revision 29c0ed05a0ff3f024a6b10413869f3713f7fca12)
@@ -0,0 +1,11 @@
+package it.finki.tinki.model.pojo;
+
+import it.finki.tinki.model.enumerator.AccountType;
+import lombok.Data;
+
+@Data
+public class AccountLoginDataPojo {
+    private String account;
+    private String password;
+    private AccountType type;
+}
Index: src/main/java/it/finki/tinki/repository/CompanyRepository.java
===================================================================
--- src/main/java/it/finki/tinki/repository/CompanyRepository.java	(revision efdb71aa1757424fe04a51abea579db929017293)
+++ src/main/java/it/finki/tinki/repository/CompanyRepository.java	(revision 29c0ed05a0ff3f024a6b10413869f3713f7fca12)
@@ -7,3 +7,4 @@
 @Repository
 public interface CompanyRepository extends JpaRepository<Company, Long> {
+    Company findByEmailAndPassword(String email, String password);
 }
Index: src/main/java/it/finki/tinki/repository/TeamRepository.java
===================================================================
--- src/main/java/it/finki/tinki/repository/TeamRepository.java	(revision efdb71aa1757424fe04a51abea579db929017293)
+++ src/main/java/it/finki/tinki/repository/TeamRepository.java	(revision 29c0ed05a0ff3f024a6b10413869f3713f7fca12)
@@ -7,3 +7,4 @@
 @Repository
 public interface TeamRepository extends JpaRepository<Team, Long> {
+    Team findByEmailAndPassword(String email, String password);
 }
Index: src/main/java/it/finki/tinki/repository/UserRepository.java
===================================================================
--- src/main/java/it/finki/tinki/repository/UserRepository.java	(revision efdb71aa1757424fe04a51abea579db929017293)
+++ src/main/java/it/finki/tinki/repository/UserRepository.java	(revision 29c0ed05a0ff3f024a6b10413869f3713f7fca12)
@@ -7,3 +7,4 @@
 @Repository
 public interface UserRepository extends JpaRepository<User, Long> {
+    User findByEmailAndPassword(String email, String password);
 }
Index: src/main/java/it/finki/tinki/service/AccountService.java
===================================================================
--- src/main/java/it/finki/tinki/service/AccountService.java	(revision 29c0ed05a0ff3f024a6b10413869f3713f7fca12)
+++ src/main/java/it/finki/tinki/service/AccountService.java	(revision 29c0ed05a0ff3f024a6b10413869f3713f7fca12)
@@ -0,0 +1,10 @@
+package it.finki.tinki.service;
+
+import it.finki.tinki.model.Users.Account;
+import it.finki.tinki.model.enumerator.AccountType;
+
+import java.util.Map;
+
+public interface AccountService {
+    Account findUser(String email, String password, AccountType type);
+}
Index: src/main/java/it/finki/tinki/service/impl/AccountServiceImpl.java
===================================================================
--- src/main/java/it/finki/tinki/service/impl/AccountServiceImpl.java	(revision 29c0ed05a0ff3f024a6b10413869f3713f7fca12)
+++ src/main/java/it/finki/tinki/service/impl/AccountServiceImpl.java	(revision 29c0ed05a0ff3f024a6b10413869f3713f7fca12)
@@ -0,0 +1,54 @@
+package it.finki.tinki.service.impl;
+
+import it.finki.tinki.model.Users.Account;
+import it.finki.tinki.model.Users.Company;
+import it.finki.tinki.model.Users.Team;
+import it.finki.tinki.model.Users.User;
+import it.finki.tinki.model.enumerator.AccountType;
+import it.finki.tinki.repository.CompanyRepository;
+import it.finki.tinki.repository.TeamRepository;
+import it.finki.tinki.repository.UserRepository;
+import it.finki.tinki.service.AccountService;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Service
+public class AccountServiceImpl implements AccountService {
+
+    UserRepository userRepository;
+    TeamRepository teamRepository;
+    CompanyRepository companyRepository;
+
+    public AccountServiceImpl(UserRepository userRepository, TeamRepository teamRepository, CompanyRepository companyRepository) {
+        this.userRepository = userRepository;
+        this.teamRepository = teamRepository;
+        this.companyRepository = companyRepository;
+    }
+
+    @Override
+    public Account findUser(String email, String password, AccountType type) {
+
+        if(type.equals(AccountType.USER)){
+            User u1 = userRepository.findByEmailAndPassword(email, password);
+            if(u1!=null){
+                return u1;
+            }
+        }
+        else if(type.equals(AccountType.TEAM)){
+            Team t1 = teamRepository.findByEmailAndPassword(email, password);
+            if(t1!=null){
+                return t1;
+            }
+        }
+        else if(type.equals(AccountType.COMPANY)){
+            Company c1 = companyRepository.findByEmailAndPassword(email, password);
+            if(c1!=null){
+                return c1;
+            }
+        }
+
+        return null;
+    }
+}
