diff --git a/img/card-dashboard.png b/img/card-dashboard.png
new file mode 100644
index 0000000000000000000000000000000000000000..b5900b840b4c7e2d47c6071f929e9c946957f272
Binary files /dev/null and b/img/card-dashboard.png differ
diff --git a/img/logo-dashboard.png b/img/logo-dashboard.png
new file mode 100644
index 0000000000000000000000000000000000000000..08b5ec0d223b18accf41cb4c270a50a33f38a08a
Binary files /dev/null and b/img/logo-dashboard.png differ
diff --git a/img/logo-square.png b/img/logo-square.png
deleted file mode 100644
index 33e9096e521fb124559b93b8074f408c0bf82054..0000000000000000000000000000000000000000
Binary files a/img/logo-square.png and /dev/null differ
diff --git a/img/profile-dashboard.png b/img/profile-dashboard.png
new file mode 100644
index 0000000000000000000000000000000000000000..4e5323e25c8f25b8472c56710c75c98ac9584ea4
Binary files /dev/null and b/img/profile-dashboard.png differ
diff --git a/img/register-page.png b/img/register-page.png
new file mode 100644
index 0000000000000000000000000000000000000000..45cf697fb628bd5df5477c6df157f8ccdd617871
Binary files /dev/null and b/img/register-page.png differ
diff --git a/img/tes.txt b/img/tes.txt
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/src/dashboard.py b/src/dashboard.py
new file mode 100644
index 0000000000000000000000000000000000000000..deea84a9742ea696f8a765f28f1df45d75437242
--- /dev/null
+++ b/src/dashboard.py
@@ -0,0 +1,244 @@
+import sys
+
+from PyQt6.QtCore import Qt, pyqtSignal
+from PyQt6.QtGui import QCursor, QFont, QPixmap
+from PyQt6.QtWidgets import QApplication, QLabel, QPushButton, QWidget
+
+
+background = '#5A8D6C'
+button_color = '#174728'
+text_color = '#EEEEE2'
+card_color = '#D2DCC4'
+
+class dashboard(QWidget):
+
+    def __init__(self, user=None):
+        super().__init__()
+        if (user == None):
+            self.user = {
+                'name': 'krisi',
+                'height': 170,
+                'weight': 65,
+                'gender': 'Perempuan',
+                'age': 20,
+                'goal': 'I want to have a sixpack stomach'
+            }
+        else:
+            self.user = user
+        self.dashboardWindow()
+    
+    def dashboardWindow(self):
+        self.setWindowTitle('Dashboard - FitU')
+        self.setFixedSize(1280, 720)
+        self.setStyleSheet(f'background-color: {background};')
+        self.element()
+
+    def element(self):
+        # kumpulan font
+        helloFont = QFont()
+        helloFont.setFamily('Segoe UI')
+        helloFont.setPointSize(47)
+
+        quoteFont = QFont()
+        quoteFont.setFamily('Segoe UI')
+        quoteFont.setPointSize(25)
+
+        buttonFont = QFont()
+        buttonFont.setFamily('Segoe UI')
+        buttonFont.setPointSize(18)
+
+        dateFont = QFont()
+        dateFont.setFamily('Segoe UI')
+        dateFont.setPointSize(23)
+
+        historyFont = QFont()
+        historyFont.setFamily('Segoe UI')
+        historyFont.setPointSize(16)
+
+        # masukkan logo
+        logo = QLabel(self)
+        logo.setPixmap(QPixmap('img/logo-dashboard.png'))
+        logo.move(60, 45)
+
+        # tombol home
+        homeButton = QPushButton(self)
+        homeButton.setText('Home')
+        homeButton.setStyleSheet(f'''
+        QPushButton {{
+            color: {text_color};
+            background-color: {button_color};
+            border: none;
+            border-radius: 20px;
+        }}
+        ''') 
+        homeButton.setFont(buttonFont)
+        homeButton.setFixedSize(96, 42) #pake ini buat kalau dia buletan
+        homeButton.move(507, 53)    
+        homeButton.setCursor(
+            QCursor(Qt.CursorShape.PointingHandCursor))
+        
+        # tombol customize
+        customizeButton = QPushButton(self)
+        customizeButton.setText('Customize')
+        customizeButton.setStyleSheet(f'''
+        QPushButton {{
+            color: {text_color};
+            background-color: {background};
+            border: none;
+            border-radius: 20px;
+        }}
+        ''')
+        customizeButton.setFont(buttonFont)
+        customizeButton.move(649, 58)
+        customizeButton.setCursor(
+            QCursor(Qt.CursorShape.PointingHandCursor))
+        
+        # tombol plan
+        planButton = QPushButton(self)
+        planButton.setText('Plan')
+        planButton.setStyleSheet(f'''
+        QPushButton {{
+            color: {text_color};
+            background-color: {background};
+            border: none;
+            border-radius: 20px;
+        }}
+        ''')
+        planButton.setFont(buttonFont)
+        planButton.move(807, 58)
+        planButton.setCursor(
+            QCursor(Qt.CursorShape.PointingHandCursor))
+
+        # tombol list
+        listButton = QPushButton(self)
+        listButton.setText('List')
+        listButton.setStyleSheet(f'''
+        QPushButton {{
+            color: {text_color};
+            background-color: {background};
+            border: none;
+            border-radius: 20px;
+        }}
+        ''')
+        listButton.setFont(buttonFont)
+        listButton.move(898, 58)
+        listButton.setCursor(
+            QCursor(Qt.CursorShape.PointingHandCursor))
+        
+        # tombol history
+        historyButton = QPushButton(self)
+        historyButton.setText('History')
+        historyButton.setStyleSheet(f'''
+        QPushButton {{
+            color: {text_color};
+            background-color: {background};
+            border: none;
+            border-radius: 20px;
+        }}
+        ''')
+        historyButton.setFont(buttonFont)
+        historyButton.move(979, 58)
+        historyButton.setCursor(
+            QCursor(Qt.CursorShape.PointingHandCursor))
+        
+        # foto profil
+        profilePhoto = QLabel(self)
+        profilePhoto.setPixmap(QPixmap('img/profile-dashboard.png'))
+        profilePhoto.move(1133, 45)
+
+        # say Hello
+        self.hello = QLabel(self)
+        self.hello.setText(f"Hello, {self.user['name']}!")
+        self.hello.move(101, 236)
+        self.hello.setFont(helloFont)
+        self.hello.setStyleSheet(f'color: {text_color};')
+        self.hello.setAlignment(Qt.AlignmentFlag.AlignLeft)
+
+        # quote
+        quote = QLabel(self)
+        quote.setText("Saran quote dong maz\nbingung mau naro quote apa nih")
+        quote.setStyleSheet(f'color: {text_color};')
+        quote.move(101, 320)
+        quote.setFont(quoteFont)
+        quote.setAlignment(Qt.AlignmentFlag.AlignLeft)
+
+        # tombol start
+        start = QPushButton(self)
+        start.setText("Let's Start!")
+        start.setStyleSheet(f'''
+        QPushButton {{
+            color: {text_color};
+            background-color: {button_color};
+            border: none;
+            border-radius: 20px;
+        }}
+        ''') 
+        start.setFont(buttonFont)
+        start.setFixedSize(233, 47) #pake ini buat kalau dia buletan
+        start.move(101, 511)    
+        start.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
+
+        # membuat history card
+        card = QLabel(self)
+        card.setPixmap(QPixmap('img/card-dashboard.png'))
+        card.move(633, 172) 
+
+        kiri = QPushButton(self)
+        kiri.setText('<')
+        kiri.setStyleSheet(f'''
+        QPushButton {{
+            color: {button_color};
+            background-color: {card_color};
+            border: none;
+            border-radius: 20px;
+        }}
+        ''')
+        kiri.setFont(dateFont)
+        kiri.move(727, 195)
+        kiri.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
+
+        date = QLabel(self)
+        date.setText("Date :")
+        date.setStyleSheet(f'color: {button_color}; background-color: {card_color};')
+        date.move(793, 195)
+        date.setFont(dateFont)
+        date.setAlignment(Qt.AlignmentFlag.AlignLeft)
+
+        kanan = QPushButton(self)
+        kanan.setText('>')
+        kanan.setStyleSheet(f'''
+        QPushButton {{
+            color: {button_color};
+            background-color: {card_color};
+            border: none;
+            border-radius: 20px;
+        }}
+        ''')
+        kanan.setFont(dateFont)
+        kanan.move(1047, 195)
+        kanan.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
+
+        duration = QLabel(self)
+        duration.setText("Duration :")
+        duration.setStyleSheet(f'color: {button_color}; background-color: {card_color};')
+        duration.move(667,282)
+        duration.setFont(historyFont)
+        duration.setAlignment(Qt.AlignmentFlag.AlignLeft)
+
+        prog = QLabel(self)
+        prog.setText("Program Name: ")
+        prog.setStyleSheet(f'color: {button_color}; background-color: {card_color};')
+        prog.move(667, 317)
+        prog.setFont(historyFont)
+        prog.setAlignment(Qt.AlignmentFlag.AlignLeft)
+
+
+
+
+
+if __name__ == '__main__':
+    app = QApplication(sys.argv)
+    window = dashboard()
+    window.show()
+    sys.exit(app.exec())
+    
\ No newline at end of file
diff --git a/src/register.py b/src/register.py
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..d6ebef7d6cfc548ce7973eabe4d31a1608b5dc4d 100644
--- a/src/register.py
+++ b/src/register.py
@@ -0,0 +1,185 @@
+import sqlite3
+from PyQt6.QtWidgets import QApplication, QLabel, QWidget, QLineEdit, QPushButton, QRadioButton, QCheckBox, QMessageBox
+from PyQt6.QtGui import QFont, QPixmap, QCursor
+from PyQt6.QtCore import Qt
+import sys
+class register(QWidget):
+
+    def __init__(self):
+        super().__init__()
+        self.setUpWindow()
+        
+
+        # self.setUpRegisterWindow()
+        # self.conn = sqlite3.connect("fitu.db")
+    def setUpWindow(self):
+        self.setWindowTitle("FitU - Register")
+        self.setFixedSize(1280, 720)
+        self.setUp()
+
+    def setUp(self):
+        #Background
+        background = QLabel(self)
+        bacgroundImage = QPixmap("img/register-page.png")
+        background.setPixmap(bacgroundImage)
+        background.move(0, 0)
+
+
+        inputSize = QFont()
+        inputSize.setFamily("Segoe UI")
+        inputSize.setPointSize(10)
+
+        genderSize = QFont()
+        genderSize.setFamily("Segoe UI")
+        genderSize.setPointSize(14)
+
+        registerText = QFont()
+        registerText.setFamily("Segoe UI")
+        registerText.setPointSize(16)
+
+        self.nameInput = QLineEdit(self)
+        self.nameInput.setPlaceholderText("Input Your Name")
+        self.nameInput.setFixedSize(379, 44)
+        self.nameInput.setFont(inputSize)
+        self.nameInput.setStyleSheet('''
+        padding: 11px 30px 11px 30px;
+        border: 1px solid rgba(255, 255, 255, 0.8);
+        border-radius: 20px;
+        color: rgba(23, 71, 40, 1);
+        background-color: #D2DCC4
+        ''')
+        self.nameInput.move(773, 196)
+
+        self.age = QLineEdit(self)
+        self.age.setPlaceholderText("Input Your Age")
+        self.age.setFixedSize(172, 44)
+        self.age.setFont(inputSize)
+        self.age.setStyleSheet('''
+        padding: 11px 30px 11px 30px;
+        border: 1px solid rgba(255, 255, 255, 0.8);
+        border-radius: 20px;
+        color: rgba(23, 71, 40, 1);
+        background-color: #D2DCC4
+        ''')
+        self.age.move(976, 285)
+
+        self.height = QLineEdit(self)
+        self.height.setPlaceholderText("Input Your Height")
+        self.height.setFixedSize(172, 44)
+        self.height.setFont(inputSize)
+        self.height.setStyleSheet('''
+        padding: 11px 30px 11px 30px;
+        border: 1px solid rgba(255, 255, 255, 0.8);
+        border-radius: 20px;
+        color: rgba(23, 71, 40, 1);
+        background-color: #D2DCC4
+        ''')
+        self.height.move(769, 392)
+
+        self.weight = QLineEdit(self)  
+        self.weight.setPlaceholderText("Input Your Weight")
+        self.weight.setFixedSize(172, 44)
+        self.weight.setFont(inputSize)
+        self.weight.setStyleSheet('''
+        padding: 11px 30px 11px 30px;
+        border: 1px solid rgba(255, 255, 255, 0.8);
+        border-radius: 20px;
+        color: rgba(23, 71, 40, 1);
+        background-color: #D2DCC4
+        ''')
+        self.weight.move(976, 392)
+
+        self.male = QRadioButton(self)
+        self.male.move(780, 285)
+        self.male.setStyleSheet(f'background-color: #174728 ; color: #D2DCC4 ')
+        self.male.setText("Male")
+        self.male.setFont(genderSize)
+        self.male.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
+
+        self.female = QRadioButton(self)
+        self.female.move(780, 315)
+        self.female.setStyleSheet('background-color: #174728 ; color: #D2DCC4 ')
+        self.female.setText("Female")
+        self.female.setFont(genderSize)
+        self.female.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
+
+        self.registerButton = QPushButton(self)
+        self.registerButton.setText("Register")
+        self.registerButton.setFixedSize(172, 44)
+        self.registerButton.setStyleSheet('''
+        border: 1px solid rgba(255, 255, 255, 0.8);
+        border-radius: 20px;
+        color: rgba(23, 71, 40, 1);
+        background-color: #D2DCC4
+        ''')
+        self.registerButton.move(873, 545)
+        self.registerButton.setFont(registerText)
+        self.registerButton.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
+
+        self.fit = QCheckBox(self)
+        self.fit.move(781, 486)
+        self.fit.setText("Fit our body")
+        self.fit.setFont(genderSize)
+        self.fit.setStyleSheet('background-color: #174728 ; color: #D2DCC4 ')
+        self.fit.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
+
+        self.thin = QCheckBox(self)
+        self.thin.move(781, 516)
+        self.thin.setText("Thin")
+        self.thin.setFont(genderSize)
+        self.thin.setStyleSheet('background-color: #174728 ; color: #D2DCC4 ')
+        self.thin.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
+
+    def register(self):
+        if (self.nameInput == '' or self.age == '' or self.height == '' or self.weight == '' or (not self.male and not self.female) or self.fit or self.thin):
+            msgBox = QMessageBox()
+            msgBox.setText("<p>Please fill out the form properly!</p>")
+            msgBox.setWindowTitle("Registration Failed")
+            msgBox.setIcon(QMessageBox.Icon.Warning)
+            msgBox.setStyleSheet("background-color: white")
+            msgBox.setStandardButtons(QMessageBox.StandardButton.Ok)
+            msgBox.exec()
+        c = self.conn.cursor()
+        if (self.female):
+            if (self.thin):
+                c.execute(
+                    f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'thin', 'female', '{self.age.text()}')"
+                )
+                self.conn.commit()
+            elif (self.fit):
+                c.execute(
+                    f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'fit', 'female', '{self.age.text()}')"
+                )
+                self.conn.commit()
+
+            else:
+                c.execute(
+                    f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'fit, thin', 'female', '{self.age.text()}')"
+                )
+                self.conn.commit()
+
+        if (self.male):
+            if (self.thin):
+                c.execute(
+                    f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'thin', 'male', '{self.age.text()}')"
+                )
+                self.conn.commit()
+
+            elif (self.fit):
+                c.execute(
+                    f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'fit', 'male', '{self.age.text()}')"
+                )
+                self.conn.commit()
+
+            else:
+                c.execute(
+                    f"INSERT INTO user (name, height, weight, goal, gender, age) VALUES ('{self.nameInput.text()}', '{self.height.text()}', '{self.weight.text()}', 'fit, thin', 'male', '{self.age.text()}')"
+                )
+                self.conn.commit()
+                    
+if __name__ == "__main__":
+    
+    app = QApplication(sys.argv)
+    window = register()
+    window.show()
+    app.exec()
\ No newline at end of file