diff --git a/employeemanagement/src/components/dashboard/Dashboard.js b/employeemanagement/src/components/dashboard/Dashboard.js
index a7451c7706223c9d74049d286e48cc47bacd21ab..e8032bdcdc2f584fe0fe6c5335224bab57494fe0 100644
--- a/employeemanagement/src/components/dashboard/Dashboard.js
+++ b/employeemanagement/src/components/dashboard/Dashboard.js
@@ -6,6 +6,7 @@ import { connect } from 'react-redux';
 import { Redirect } from 'react-router-dom';
 import { firestoreConnect } from 'react-redux-firebase';
 import { compose } from 'redux';
+import moment from 'moment';
 
 class Dashboard extends Component {
     render() {
@@ -16,11 +17,17 @@ class Dashboard extends Component {
             })
           ) : null
 
+        const todayList = list && list.length ? (
+            list.filter(l => {
+              return l.Date === moment().format('MM/DD/YYYY')
+            })
+        ) : null
+
         if( !auth.uid ) return <Redirect to='/signin' />
         return (
             <div id="content">
                 <Navbar profile = { profile } />
-                <ManageShift />
+                <ManageShift uid={ auth.uid } todayList={ todayList } />
                 <ShiftReport workList={ list } schedule={ schedule } />
             </div>
         )
diff --git a/employeemanagement/src/components/layout/ManageShift.js b/employeemanagement/src/components/layout/ManageShift.js
index 9f244c9038ac65c06e1edd6b812e4a8439c5d9ca..0e13d8c65766d5283a6eaffdf1e9bbaa31554063 100644
--- a/employeemanagement/src/components/layout/ManageShift.js
+++ b/employeemanagement/src/components/layout/ManageShift.js
@@ -1,18 +1,104 @@
-import React, { Component } from 'react'
+import React, { Component } from 'react';
+import moment from 'moment';
+import { connect } from 'react-redux';
+import { createWork, updateWork } from '../../store/actions/shiftAction';
 
 class ManageShift extends Component {
+
+    state = {
+        date: null,
+        empId: this.props.uid,
+        startShift: '',
+        startBreak: '',
+        endBreak: '',
+        endShift: '',
+        stateSet: false
+    }
+    componentDidMount() {
+        //console.log(this.props.todayList)
+    }
+    UNSAFE_componentWillReceiveProps() {
+        if (this.props.todayList && !this.state.stateSet) {
+            this.setState(this.props.todayList[0], () => {
+                this.setState({stateSet:true})
+                //console.log(this.state)
+            })
+        }
+    }
+
+    handleCreatEvent = (e) => {
+        const r = window.confirm("Do you really want to " + e.target.id + "?"); if (r == true) {
+            this.setState({
+                [e.target.id]: moment().format('MM/DD/YYYY HH:mm:ss')
+            }, () => {
+                this.props.createWork(this.state);
+            })
+        }
+    }
+
+    handleUpdateEvent = (e) => {
+        const r = window.confirm("Do you really want to " + e.target.id + "?"); if (r == true) {
+            this.setState({
+                [e.target.id]: moment().format('MM/DD/YYYY HH:mm:ss'),
+            }, () => {
+                this.props.updateWork(this.state);
+            })
+        }
+    }
     render() {
         return (
-            <div className="container"> 
-                <div className="row">
-                    <div className="col-3 text-center"><button onClick={this.handleCreatEvent} id="startWorkTime" type="button" className="btn btn-success btn-sm btn-special">Start Work</button></div>
-                    <div className="col-3 text-center"><button disabled type="button" className="btn btn-success btn-sm btn-special">Start Lunch Break</button></div>
-                    <div className="col-3 text-center"><button disabled type="button" className="btn btn-success btn-sm btn-special">Lunch Break Finish</button></div>
-                    <div className="col-3 text-center"><button disabled type="button" className="btn btn-success btn-sm btn-special">Close Work</button></div>
+            <div className="row">
+                <div className="col-3 text-center">
+                    <button
+                        onClick={this.handleCreatEvent}
+                        disabled={this.state.startShift + "" != ""}
+                        id="startShift"
+                        type="button"
+                        className="btn btn-success btn-sm btn-special">
+                        Start Work
+                    </button>
+                </div>
+                <div className="col-3 text-center">
+                    <button
+                        type="button"
+                        className="btn btn-success btn-sm btn-special"
+                        disabled={this.state.startShift + "" == "" || this.state.startBreak + "" != ""}
+                        onClick={this.handleUpdateEvent}
+                        id="startBreak">
+                        Start Lunch Break
+                    </button>
+                </div>
+                <div className="col-3 text-center">
+                    <button
+                        disabled={this.state.startShift + "" == "" || this.state.startBreak + "" == "" || this.state.endBreak + "" != ""}
+                        type="button"
+                        className="btn btn-success btn-sm btn-special"
+                        onClick={this.handleUpdateEvent}
+                        id="endBreak">
+                        Lunch Break Finish 
+                        {this.state.endBreak == ""}
+                    </button>
+                </div>
+                <div className="col-3 text-center">
+                    <button
+                        disabled={this.state.startShift + "" == "" || this.state.startBreak + "" == "" || this.state.endBreak + "" == "" || this.state.endShift + "" != ""}
+                        type="button"
+                        onClick={this.handleUpdateEvent}
+                        className="btn btn-success btn-sm btn-special"
+                        id="endShift">
+                        Close Work  
+                        {this.state.endShift == ""}
+                    </button>
                 </div>
             </div>
-        )
+        );
+    }
+}
+const mapStateToProps = (dispatc) => {
+    return {
+        createWork: (work) => dispatc(createWork(work)),
+        updateWork: (work) => dispatc(updateWork(work))
     }
 }
 
-export default ManageShift
+export default connect(null, mapStateToProps)(ManageShift);
diff --git a/employeemanagement/src/store/actions/shiftAction.js b/employeemanagement/src/store/actions/shiftAction.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..e251d648896b36001d076e8833fef847a9a4fe69 100644
--- a/employeemanagement/src/store/actions/shiftAction.js
+++ b/employeemanagement/src/store/actions/shiftAction.js
@@ -0,0 +1,41 @@
+import moment from 'moment';
+
+export const createWork = (shift) => {
+    return (dispatch, getState, { getFirebase, getFirestore }) => {
+        const firestore = getFirestore();
+        const authuId = getState().firebase.auth.uid;
+
+        firestore.collection('Shifts').add({
+            ...shift,
+            empId: authuId,
+            date: moment().format('MM/DD/YYYY')
+        }).then(() => {
+            dispatch({ type: 'ADD_SHIFT', shift })
+        }).catch((err) => {
+            dispatch({ type: 'ADD_SHIFT_ERROR', err });
+        })
+    }
+}
+export const updateWork = (shift) => {
+    return (dispatch, getState, { getFirebase, getFirestore }) => {
+        const firestore = getFirestore();
+
+        firestore.collection("Shifts")
+            .where("empId", "==", shift.empId)
+            .get()
+            .then(function (querySnapshot) {
+                querySnapshot.forEach(function (doc) {
+                    let data = doc.data();
+                    if (new Date(data.date).toLocaleDateString() == new Date().toLocaleDateString()) {
+                        shift.date = data.date;
+                        firestore.collection('Shifts').doc(doc.id).update(shift)
+                            .then(() => {
+                                dispatch({ type: 'UPDATE_SHIFT', shift })
+                            }).catch((err) => {
+                                dispatch({ type: 'UPDATE_SHIFT_ERROR', err });
+                        })
+                    }
+                })
+            })
+    }
+}
\ No newline at end of file
diff --git a/employeemanagement/src/store/reducers/shiftReducer.js b/employeemanagement/src/store/reducers/shiftReducer.js
index 788290d308e520238a6e1f0a357250f1452c177d..99a1f46ac41b2dc271ade780e26c4cea97e7854d 100644
--- a/employeemanagement/src/store/reducers/shiftReducer.js
+++ b/employeemanagement/src/store/reducers/shiftReducer.js
@@ -1,6 +1,21 @@
 const initState = {}
 
 const shiftReducer = (state = initState, action) => {
-    return state
+    switch (action.type) {
+        case 'ADD_SHIFT':
+            console.log('New shift added', action.shift);
+            return state;
+        case 'ADD_SHIFT_ERROR':
+            console.log('New shift error', action.shift);
+            return state;
+        case 'UPDATE_SHIFT':
+            console.log('update shift', action.shift);
+            return state;
+        case 'UPDATE_SHIFT_ERROR':
+            console.log('update shift error', action.shift);
+            return state;
+        default:
+            return state;
+    }
 }
 export default shiftReducer
\ No newline at end of file