diff --git a/forms.py b/forms.py
new file mode 100644
index 0000000000000000000000000000000000000000..ad5e62c92b8e08774273737d665f552be94e234f
--- /dev/null
+++ b/forms.py
@@ -0,0 +1,8 @@
+from flask_wtf import FlaskForm
+from wtforms import StringField, TextAreaField, SubmitField
+from wtforms.validators import DataRequired
+
+class ProjectForm(FlaskForm):
+    title = StringField('Title', validators=[DataRequired()])
+    description = TextAreaField('Description', validators=[DataRequired()])
+    submit = SubmitField('Add Project')
diff --git a/my_flask_app.py b/my_flask_app.py
index a9442634e8c65539e7e8bab8abdd5982ff562cfa..ffd2955c583e2da87c45926ec17b9eafeb73653f 100644
--- a/my_flask_app.py
+++ b/my_flask_app.py
@@ -2,8 +2,10 @@ import os
 import secrets
 from flask import Flask, render_template, request, redirect, url_for, send_from_directory, abort, current_app
 from flask_sqlalchemy import SQLAlchemy
-from models import db, Project
-
+from flask_wtf import FlaskForm
+from forms import ProjectForm
+from wtforms import StringField, TextAreaField, SubmitField
+from wtforms.validators import DataRequired
 
 app = Flask(__name__, static_folder='static')
 app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
@@ -11,12 +13,18 @@ app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.abspath(os.path.j
 app.config['SECRET_KEY'] = secrets.token_hex(16)
 
 db = SQLAlchemy(app)
+
 class Project(db.Model):
     id = db.Column(db.Integer, primary_key=True)
     title = db.Column(db.String(100), nullable=False)
     description = db.Column(db.Text, nullable=False)
 
+class ProjectForm(FlaskForm):
+    title = StringField('Title', validators=[DataRequired()])
+    description = TextAreaField('Description', validators=[DataRequired()])
+    submit = SubmitField('Add Project')
 @app.route('/')
+
 def home():
     try:
         projects = Project.query.all()
@@ -47,23 +55,22 @@ def portfolio():
 def contact():
     return render_template('contact.html')
 
-# Updated route for adding a project without Flask-WTF form
+# Updated route for adding a project using Flask-WTF form
 @app.route('/add_project', methods=['GET', 'POST'])
 def add_project():
-    if request.method == 'POST':
-        # Retrieve form data directly from request
-        title = request.form.get('title')
-        description = request.form.get('description')
+    form = ProjectForm()
 
-        # Print or log the form data to check if it's received
-        print(f"Received form data - Title: {title}, Description: {description}")
+    if request.method == 'POST' and form.validate_on_submit():
+        title = form.title.data
+        description = form.description.data
 
         new_project = Project(title=title, description=description)
         db.session.add(new_project)
         db.session.commit()
         return redirect(url_for('home'))
 
-    return render_template('add_project.html')
+    return render_template('add_project.html', form=form)  # Pass the form to the template
+
 
 # Updated route for serving the 'my-cv.docx' file
 @app.route('/download_cv')
@@ -87,8 +94,8 @@ def download_assessment(filename):
         print(f"Error serving assessment file: {str(e)}")
         current_app.logger.exception(f"Error serving assessment file: {str(e)}")
         abort(500)
-        
+
 if __name__ == '__main__':
     with app.app_context():
         db.create_all()
-    app.run(debug=True, port=int(os.environ.get('PORT', 8080)))
+    app.run(debug=True, port=int(os.environ.get('PORT', 8080)))
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
index 65df85baf140ce35bf0eef56cc63cfd249cd40e5..7ecaa2a26b79e5e9a141ff53588b47bf0c8a4cc5 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -19,3 +19,6 @@ waitress==2.1.2
 Werkzeug==3.0.1
 zope.event==5.0
 zope.interface==6.1
+Flask-WTF==1.2.1
+wtforms==3.1.2
+
diff --git a/templates/add_project.html b/templates/add_project.html
index 6d9f8b3375181a385b3591e312818712eb925b59..dc5c064a251f8a83fb95a7904d98159a3d4a8c52 100644
--- a/templates/add_project.html
+++ b/templates/add_project.html
@@ -11,18 +11,20 @@
 <body>
     <h2>Add Project</h2>
     <form method="POST" action="{{ url_for('add_project') }}">
-        {{ form.csrf_token }}
-        <div class="form-group">
-            {{ form.title.label }}
-            {{ form.title(class="form-control", placeholder="Enter project title") }}
-        </div>
-        <div class="form-group">
-            {{ form.description.label }}
-            {{ form.description(class="form-control", placeholder="Enter project description") }}
-        </div>
-        <div class="form-group">
-            {{ form.submit(class="btn btn-primary") }}
-        </div>
+        {% if form %}
+            {{ form.csrf_token }}
+            <div class="form-group">
+                {{ form.title.label }}
+                {{ form.title(class="form-control", placeholder="Enter project title") }}
+            </div>
+            <div class="form-group">
+                {{ form.description.label }}
+                {{ form.description(class="form-control", placeholder="Enter project description") }}
+            </div>
+            <div class="form-group">
+                {{ form.submit(class="btn btn-primary") }}
+            </div>
+        {% endif %}
     </form>
 </body>
 </html>