diff --git a/package-lock.json b/package-lock.json
index c9ea83fb4d55e2024a44fbd3c8c069907362590c..0bd99eeca7262b328f871dac57218d0a9218542a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -327,6 +327,15 @@
       "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
       "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4="
     },
+    "axios": {
+      "version": "0.17.1",
+      "resolved": "https://registry.npmjs.org/axios/-/axios-0.17.1.tgz",
+      "integrity": "sha1-LY4+XQvb1zJ/kbyBT1xXZg+Bgk0=",
+      "requires": {
+        "follow-redirects": "1.4.1",
+        "is-buffer": "1.1.6"
+      }
+    },
     "axobject-query": {
       "version": "0.1.0",
       "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-0.1.0.tgz",
@@ -3465,6 +3474,24 @@
       "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
       "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I="
     },
+    "follow-redirects": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.4.1.tgz",
+      "integrity": "sha512-uxYePVPogtya1ktGnAAXOacnbIuRMB4dkvqeNz2qTtTQsuzSfbDolV+wMMKxAmCx0bLgAKLbBOkjItMbbkR1vg==",
+      "requires": {
+        "debug": "3.1.0"
+      },
+      "dependencies": {
+        "debug": {
+          "version": "3.1.0",
+          "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+          "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+          "requires": {
+            "ms": "2.0.0"
+          }
+        }
+      }
+    },
     "for-in": {
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
diff --git a/package.json b/package.json
index 73171f64ab5fa4cc2820664f965ded5ea8720e04..5d4da3637a8a8ab81752cd793f77542ec1f82262 100644
--- a/package.json
+++ b/package.json
@@ -1,8 +1,10 @@
 {
   "name": "kszkepzes-frontend",
   "version": "0.1.0",
+  "proxy": "http://127.0.0.1:8000",
   "private": true,
   "dependencies": {
+    "axios": "^0.17.1",
     "prop-types": "^15.6.0",
     "react": "^16.2.0",
     "react-dom": "^16.2.0",
diff --git a/src/actions/types.js b/src/actions/types.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..546a492652062da3cc04fad6f61f61a922daba1d 100644
--- a/src/actions/types.js
+++ b/src/actions/types.js
@@ -0,0 +1,3 @@
+export const GET_USERDATA = 'get_userdata';
+export const PROFILE_CHANGE = 'profile_change';
+export const GROUP_CHANGE = 'group_change';
diff --git a/src/reducers/TodoReducer.js b/src/reducers/TodoReducer.js
deleted file mode 100644
index ec9ded5870943256b9de3a908c7ec9bcd9fde700..0000000000000000000000000000000000000000
--- a/src/reducers/TodoReducer.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import {
-  ADD_TODO,
-} from '../actions/types';
-
-const INITIAL_STATE = {
-  todos: [{ data: 'hello' }],
-};
-
-export default (state = INITIAL_STATE, action) => {
-  switch (action.type) {
-    case ADD_TODO:
-      return { todos: [...state.todos, { data: action.payload }] };
-    default:
-      return state;
-  }
-};
diff --git a/src/reducers/UserReducer.js b/src/reducers/UserReducer.js
new file mode 100644
index 0000000000000000000000000000000000000000..839a47eb435192c9bbac2d2f7a23c134a3bcaed6
--- /dev/null
+++ b/src/reducers/UserReducer.js
@@ -0,0 +1,21 @@
+import {
+  GET_USERDATA,
+  PROFILE_CHANGE,
+  GROUP_CHANGE,
+} from '../actions/types';
+
+const INITIAL_STATE = {
+};
+
+export default (state = INITIAL_STATE, action) => {
+  switch (action.type) {
+    case GET_USERDATA:
+      return { ...state, ...action.payload };
+    case PROFILE_CHANGE:
+      return { ...state, [action.target]: action.payload };
+    case GROUP_CHANGE:
+      return { ...state, groups: action.payload };
+    default:
+      return state;
+  }
+};
diff --git a/src/reducers/index.js b/src/reducers/index.js
index 030bd73a735f6d1674b1547089bc51d9ba0b55fa..4efaaedff82e2b3d46a25e5b9bea99a57e6faf02 100644
--- a/src/reducers/index.js
+++ b/src/reducers/index.js
@@ -1,8 +1,8 @@
 import { combineReducers } from 'redux';
-import TodoReducer from './TodoReducer';
+import UserReducer from './UserReducer';
 
 const rootReducer = combineReducers({
-  todos: TodoReducer,
+  user: UserReducer,
 });
 
 export default rootReducer;