ML — Portfolio Project

In 2020, I began my study at the Holberton School in Tunis, and it has been an incredible experience.

In my first year, I focused on the foundation, which included low-level, high-level, and Dev Ops topics, consequently, I moved on to a new challenge, deciding to specialize in machine learning. I was ecstatic to see what machine learning could accomplish.

Today, my experience is almost complete; I’m on the go to be a machine learning engineer, and I’ve begun working on my portfolio project.

My teammate who specializes in web development recommended working on a website using artificial intelligence around a month ago, so I was quite agitated and puzzled. After much research and questioning, I ultimately chose to create an IA chatbot named JARVIS for a website.


DEVAPP is an online school developed by two students from Holberton School. It began as a portfolio project to assist people interested in pursuing a career in programming. Devapp will serve as their stepping-stone into the coding industry.

Why are chatbots important?

What’s a chatbot?

  • the computer software that replicates and processes human interaction (either written or spoken), allowing humans to communicate with digital devices as if they were speaking with a person.
  • Organizations looking to increase sales or service productivity may adopt chat bots for time savings and efficiency, as artificial intelligence (AI) chat bots can converse with users and answer recurring questions.
  • As consumers move away from traditional forms of communication, many experts expect chat-based communication methods to rise. Organizations increasingly use chat bot-based virtual assistants to handle simple tasks, allowing human agents to focus on other responsibilities.


  • Intents.JSON:is all about what the user wants to get out of the interaction.
  • is The architecture model of a chatbot.
  • predicting what users will say and hope to get from the chatbot.
  • this file contains flask libraries and the app route.
  • data.pth: this file contains the trained data.
  • nltk_utils: this file split the sentence into an array of words or tokens and also finds the root of the word.


  • Flask: After making sure that the virtual environment is successfully activated and the flask is installed, we render the template to generate the output that’s based on Jinja2 & initialize the Flask-Cors extension with default arguments to allow CORS for all domains on all routes & predict the flask API.
  • nltk: nltk: the chatbot uses the Natural Language Processing Toolkit (NLTK) to process the trained data in intents.json.
  • numpy:

NumPy can be used to perform a wide variety of mathematical operations on arrays, I used NumPy to fill the bag of wards with zeros in case the word didn’t exist.

  • php: PHP(short for Hypertext PreProcessor) is the most widely used open-source and general-purpose server-side scripting language used mainly in web development to create dynamic websites and applications, I used it to create the Login page.
  • mysql: MySQL is an open-source relational database management system, I used IT to create the database of the Login page.


Why Jarvis is important:

  • Jarvis is extremely significant since he improves consumer experiences in a variety of ways.
  • He replaces time-consuming browsing and navigational website components with more natural, quicker, and convenient Q&A-styled interactions for consumers.

ethical implications of chat bot:

  • privacy.
  • identity.

Time management,challenges & roles:

  • I started constructing Devapp a month and 4 days ago with Khalil Hassayoun. At first, it was tough for us to work together, especially since we are from two separate specialties, but we eventually figured out a solution and divided the work into three parts (building Jarvis, building the website, and integrating both projects):
  • During the first week, I began working on the front-end of the chat & learning Flask while Khalil tried to come up with a nice design for his website.
  • In the second week, I gathered a lot of knowledge on chatbots and the tools I’d need, and Khalil began working on the home page.
  • In the third week, I learned more about NLP and flask, and Khalil almost finished the course However, there was some inaccuracy in the data training & plenty of errors in packages and training files.
  • After 3 days: Khalil finished the home page, logo, course page, and contact form and I got many issues with the virtual environment and the interpreter.
  • At the end of the 3rd week after I repaired the interpreter I surprised that all packages I need are deleted and that’s made me so mad.
  • After 4 hours of investigating, I discovered that I was the wrong interpreter and that makes me mad :’).
  • in the fourth week: I recommended to Khalil that I develop a dynamic login page for him using PHP and MySQL, and he liked the concept; I improved Jarvis and repaired bugs.
  • In the middle of the 4th week: Khalil sent the intents we need for the chatbot.
  • In the end of the week: I finished the login page and merged Jarvis with Khalil’s web application in the previous four days, after getting many problems to cause to the CSS and js files.
  • Time spent in the work: About 4 to 6 hous per day.

About our experience:

  • Developing an IA chatbot was a fantastic experience since towards the conclusion of the project, I felt I had learned new things about training data and how to utilize new technologies.
  • I also appreciated how we divided the work and time between myself and Khalil and integrated two distinct sorts of projects.
  • Success:
  • We included an artificial intelligence chatbot on the website.
  • Using PHP, we created the back end for the login page.
  • We shared our knowledge of each other’s areas of expertise.
  • I learned flask.
  • Investigate new machine learning libraries.
  • Incorporate two languages into the chatbot (Spanish & English).
  • Successful integration of two distinct types of projects.
  • For the first time, I’m experimenting with JSON.


  • We didn’t have enough time to add Arabic as a language to the chat bot.
  • We did not complete the contact form and did not make it dynamic.
  • Jarvis is not done (he is unable to answer all questions).

What did i learn?

  • I learned how to use the flask.
  • use XAMPP(MySQL,apache2,PHP).
  • I discovered more about NLP.
  • NLTK(Natural Language Toolkit).
  • Time management.
  • training Data.
  • a function that splits & tokenizes the sentences.


  • In conclusion , it is not easy to integrate AI in web stack development and we passed with very hard times but we learned so much too and that’s make me proud, not only that i discovered that khalil is a such an amazing and funny person even in the stressful times.




Software engineer student at Holbertonschool

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Node + Javascript Interactive 2018, and other things that I found in Vancouver

Why Implement a Code Scanner in Salesforce?

| Engineering News-Record

Join Apron Network Developer Community

Running Google Cloud Endpoint Tests Locally

An early look at ServiceNow CSDM 4.0 — Part 1


What is gRPC (Google Remote Procedure Call)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Fadi Koubaa

Fadi Koubaa

Software engineer student at Holbertonschool

More from Medium

SO ME: All-in-One Social Media Analytics Web Application


Clone of

Sending Starbucks offers more effectively