1 AN-NAJAH NATIONAL UNIVERSITY Faculty of Engineering & Information Technology Computer Engineering Department Software Graduation Project Training companies [Tech Match] Group members: Reem Mohammed Daraghmeh Haneen Osamah Barham Supervised By: Dr. Manar Qamhieh Presented in partial fulfilment of the requirements for bachelor's degree in computer engineering. 2 1 Acknowledgment We would like to begin this report by expressing our deepest gratitude to God to whom we extend our heartfelt thanks for the guidance and wisdom he has bestowed upon us throughout this academic journey. His unwavering support has continually provided us with strength and confidence, and for that we are deeply appreciative. We would also like to extend special thanks to Dr. Manar Qamhieh, and all the Computer Department doctors whose guidance and expertise have been instrumental in our academic assistance, their mentorship was the cornerstone of this project. Finally, we would like to thank our university for cultivating a supportive environment that promotes learning and personal development. The achievement we make today would have remained elusive without the unwavering support of our dear friends and loyal family. Our sincere thanks go to all of you for your continued encouragement. 3 2 Disclaimer: Reem Daraghmeh and Haneen Barham of the Computer Engineering Department, Faculty of Engineering, An-Najah National University are the authors of this report. It has not been altered or revised save for editorial changes brought about by the evaluation; as a result, it might include grammatical and/or content errors. The opinions expressed in it, along with any conclusions and advice, are all purely the students. An-Najah National University disclaims all liability and responsibility for the results of using this study for purposes other than those for which it was commissioned. 4 3 Abstract: This project aims to create an innovative system that makes it easier for students to achieve distinctive training experience in the practical training course. Through this system, students can choose and apply for internship opportunities with companies and get the opportunity to apply their theoretical knowledge in a real practical environment. The project is characterized by advanced features that rely on technology and artificial intelligence to provide a distinctive experience for users, and one of the most prominent of these features is: Artificial Intelligence Recommendation System: The system uses analysis of students' skills and interests derived from CVs to provide accurate recommendations on suitable companies. Furthermore, the system features an advanced search and filtering system that enables students to search for training companies based on various criteria such as geographical location, field of work. This makes it easier for students to find companies and internship opportunities that align with their interests and educational goals. Of course, students and companies will have access to the system after verifying their information, so in this project we are creating a platform that provides unique and customized interfaces for each of its team members, whether they are companies or students. For companies, the platform offers a customized interface that allows them to manage training opportunities and track student performance. For students, a personal interface is provided that enables them to select and apply for training opportunities and upload their profiles. This strategy enhances each team's experience and provides interfaces tailored to their needs and facilitates their interaction with the platform efficiently. In conclusion, this innovative project serves as a bridge between the aspirations of students and the opportunities offered by forward-thinking companies. It not only enriches students' educational journeys by providing practical experiences and customizable learning options but also empowers companies to identify and nurture the talents of the future. 5 4 Contents 1 Acknowledgment ................................................................................................................................................... 2 2 Disclaimer: ............................................................................................................................................................. 3 3 Abstract .................................................................................................................................................................. 4 5 Table of Figures ..................................................................................................................................................... 6 6 Introduction ............................................................................................................................................................ 7 o 6.1 Problem: ........................................................................................................................................................... 7 o 6.2 Objective: ......................................................................................................................................................... 7 o 6.3 Scope Of the Work: ......................................................................................................................................... 7 o 6.4 Importance: ...................................................................................................................................................... 8 o 6.5 Report Organization: ........................................................................................................................................ 8 7 Constraints and Earlier course work: ................................................................................................................ 9 o 7.1 Constraints: ...................................................................................................................................................... 9 o 7.2 Earlier course work .......................................................................................................................................... 9 8 Literature Review .............................................................................................................................................. 10 9 Methodology ....................................................................................................................................................... 11 o 9.1 Database ......................................................................................................................................................... 11 o 9.2 Server Side ..................................................................................................................................................... 12 o 9.3 Front-end Side ................................................................................................................................................ 12 o 9.4 Firebase .......................................................................................................................................................... 13 o 9.5 API ................................................................................................................................................................. 13 o 9.6 API Testing .................................................................................................................................................... 14 o 9.7 Recommendation system ............................................................................................................................... 15 o 9.8 Project Feature ............................................................................................................................................... 19 9.8.1 Student features in the project: ...................................................................................................................... 19 9.8.2 Company features in the project: .................................................................................................................. 20 9.8.3 Training center features in the project: ......................................................................................................... 23 9.8.4 Supervisor Interface Features:....................................................................................................................... 24 10 Results And Discussion ...................................................................................................................................... 31 o 10.1 Learning: ...................................................................................................................................................... 31 o 10.2 Challenges: ................................................................................................................................................... 32 11 Conclusion .......................................................................................................................................................... 33 12 Future work:....................................................................................................................................................... 35 13 References ........................................................................................................................................................... 36 6 5 Table of Figures Figure 1: Recommendation system .............................................................................................. 15 Figure 2:Top Companies rec. system ........................................................................................... 18 Figure 3:Student Feature .............................................................................................................. 25 Figure 4:AI Feature: ..................................................................................................................... 26 Figure 5:Company Feature ........................................................................................................... 26 Figure 6:Supervisor Feature ......................................................................................................... 27 Figure 7:Training Centre Feature ................................................................................................. 29 Figure 8:Chat and notification for all users .................................................................................. 30 Figure 9:Logo, Login and Signup ................................................................................................ 30 7 6 Introduction : 6.1 Problem: Finding companies and organizations that fit their academic majors and career aspirations is a major hurdle that many students face while searching for internship opportunities. The challenge is to coordinate this practical training with topics that concern students because there are not enough effective ways for students to communicate with training providers, and students face greater difficulty in finding training options that properly match their acquired skills due to the wide range of specializations and the large number of companies. Furthermore, some students have difficulty finding comprehensive information about available opportunities, making them unsure about what actions to take to apply for and secure those opportunities. In addition, the amount of time that students waste searching for appropriate training options is significant and is also considered wasted time. 6.2 Objective: Our project represents a major key in providing a distinctive training experience for students and helping them choose the best companies that suit them. It also provides students with opportunities to transform theoretical concepts into actual experiences in a real work environment. This connection is further achieved by directing students to inspiring internship opportunities that match their academic majors. 6.3 Scope Of the Work: Our application focuses on each major the university offers, and every aspect associated with it. Through our application, we give students the opportunity to view the best options available to them in terms of training advertisements and join them by following a series of stages that include providing information and other things, it also allows you to benefit from the various services provided by our application. Moreover, we provide companies with well-educated students who possess skills appropriate to their fields. We also do not forget the link between students and companies, which is the training center and specialization supervisors who always strive to provide the best companies to students. 8 6.4 Importance: Choosing companies is a pivotal and important aspect of the practical training course, in most university majors, as our project plays a crucial role in providing cooperation and facilities to students in seeking the best companies suitable for them, searching for the information they need, or benefiting from the services it provides. The project includes presenting the best companies to the student according to his specialty or personal information. The challenge is often finding the right company. This dilemma underscores the essence of our project, which aims to simplify and enhance communication between students and companies. We aspire to simplify the process of identifying and selecting companies that match their training needs. This initiative seeks to empower students to make informed decisions, and ensure a more efficient and targeted approach in selecting companies for their training programmes . 6.5 Report Organization: This report is organized as follows, Chapter One: Summary of our project, then Chapter Two: Introduction and overview of the importance and scope of this project. In Chapter Three: The problems and obstacles we faced in this project, Chapter Four: Literature review, Chapter Five: The methodology used to complete the project. In Chapter Six: Results and Discussion, Chapter Seven: Conclusion Chapter Eight Future work , and i chapter nine References. 9 7 Constraints and Earlier course work: 7.1 Constraints: o We made an effort to ensure that our application included every feature a student might possibly require to quickly obtain what he wants. As a result, we had to carefully consider which features would be most beneficial to add in the project. o Internet connection: Our application requires a constant online connection. This is the result of the JSON requests. o We did not learn how to create a mobile application in our prior classes. We also had to learn about and become acquainted with the cloud-hosted Firebase Database in order to utilize it. MongoDB is an additional database that we investigate and utilize. We tried to make everything we learned familiar to us in order to use the features and program effectively, but this was more difficult than usual because we had other commitments and had to work under pressure. 7.2 Earlier course work During our computer engineering studies, we took several courses that equipped us with valuable knowledge and skills. These courses included web programming, object-oriented programming, and a database course, which formed a solid foundation for mastering front-end and back-end development. Gain proficiency in dealing with real databases, in addition in addition, advanced software engineering courses and software courses played a crucial role in instilling software engineering standards and guiding us in writing code accurately. Networking 2 course in which we learned about communication between the server and the application using HTTP requests. The insights gained from these sessions have greatly contributed to the success of our project and to the simplification of the programming process, reducing the need for frequent consultations with external resources. Furthermore, at the beginning of the semester, we independently delved into learning Flutter, Dart, Node.js, MongoDB, Flask, and Firebase. This self-exploration has enriched our software development experience. 10 8 Literature Review: The integration of technology into education has witnessed a transformative journey, Notable pioneers have played crucial roles in shaping this landscape. In the early 2000s, platforms like Blackboard and Moodle laid the groundwork for online learning, challenging traditional classroom structures. One pivotal individual in this trajectory is Anant Agarwal, CEO of edX, who, in collaboration with MIT and Harvard, founded the platform in 2012. EdX marked a significant shift, introducing Massive Open Online Courses (MOOCs) that allowed universities to offer courses online, accessible to a global audience. The evolution of technology in education gained momentum around the same time through the efforts of Salman Khan, the founder of Khan Academy. Khan's innovative use of video tutorials and adaptive learning techniques revolutionized the concept of flipped classrooms, empowering students to learn at their own pace. As the demand for practical experiences grew, the transition to integrating technology into training became evident. In 2011, Reid Hoffman, co-founder of LinkedIn, recognized the need for a professional networking platform in the education sector. LinkedIn Learning, launched in 2016, provided a bridge between technology, education, and professional development, offering courses and certifications to enhance employability. The proposed project aligns with these trends by leveraging technology to facilitate university students in seeking training opportunities. The emphasis on creating a platform for companies and students draws inspiration from the success of LinkedIn Learning, offering a centralized space for collaboration between academia and industry. In conclusion, the literature review establishes a timeline of key milestones, highlighting the contributions of figures like Anant Agarwal, Salman Khan, and Reid Hoffman. It illustrates how the amalgamation of technology and education has paved the way for innovative platforms, setting the stage for the proposed project's mission to connect university students with practical training opportunities through advanced digital solutions. 11 9 Methodology: Mobile and web application development requires many different tools and programs that help in creating mobile and web applications. In this section, we provide a detailed explanation of the methodology as following: 9.1 Database: To handle and organize the application data, we chose MongoDB as our database solution. MongoDB was selected for this project for the following reasons: Flexibility: MongoDB's NoSQL document-based architecture provides a high degree of flexibility in handling data. Unlike traditional relational databases, MongoDB doesn't require a predefined schema. This feature makes it easy to adapt and modify the data model as the project evolves, which is particularly advantageous when dealing with dynamic and evolving data structures. Performance: MongoDB excels in data retrieval tasks. Its document-oriented approach and efficient indexing techniques contribute to quick and effective data querying. MongoDB supports complex queries involving multiple fields and criteria. Additionally, built-in caching and memory management tools enhance query performance, leading to faster response times. Node.js Integration: The official MongoDB driver for Node.js facilitates seamless interaction with the project's Node.js backend. The driver provides a wide array of functions and utilities, simplifying CRUD (Create, Read, Update, Delete) activities, enabling the execution of sophisticated queries, and allowing the utilization of MongoDB's advanced features within Node.js applications. This integration enhances the overall development experience and ensures smooth communication between the application and the database. 12 9.2 Server Side: we Used Node.js as the backend language and this offer several benefits:  Node.js has a vast and vibrant ecosystem of open-source packages available through the Node Package Manager (NPM). This makes it easier to find and integrate third-party libraries and modules to enhance the functionality of your application.  Community Support: Node.js has a large and active community, which means that developers can easily find support, tutorials, and solutions to common problems. This community support can be invaluable during the development process.  Performance Node.js can provide good performance for certain types of applications, especially those involving I/O-bound operations. When combined with Flutter's efficient UI rendering on the frontend, you can achieve a responsive and performant user experience. 9.3 Front-end Side: We leveraged the Flutter framework to develop the frontend for both the website and mobile application, streamlining our development process and avoiding the need for redundant code, ultimately saving us valuable time. Design: Our design approach began with the selection of colors to convey an official and educational atmosphere. We opted for a palette of blue, white, black, and gray to achieve a cohesive and professional look. 13 Frameworks: The decision to utilize Flutter, an open-source framework by Google, was a result of a thorough evaluation of its features, with performance being a key consideration. Flutter's cross-platform nature enables seamless code sharing across different systems. Unlike other application frameworks, Flutter allows sharing both code and the actual user interface. Additionally, being open source, Flutter comes with extensive documentation and courses, facilitating a quicker learning curve and offering solutions to common programming challenges. In essence, Flutter provides a straightforward approach to developing high-performance cross- platform mobile applications with efficient code sharing. Programming Languages: Dart, a language developed by Google, was our language of choice, specifically designed for web and mobile application development. Dart is versatile, allowing the creation of applications for both Android and iOS platforms. The language is engineered to work across modern web browsers, various mobile devices, and even web servers, making it a comprehensive choice for our project. 9.4 Firebase : One of the basic features of our application is real-time chat and notifications, where users can send messages to each other if they have any inquiries, questions, or other things. To implement this system, we used the Firebase platform with Flutter. Firebase is a backend application development platform as a service (BaaS) that provides hosted backend services such as real-time database, cloud storage, authentication, and machine learning. We have used multiple features of Firebase in our app as it provides support for Flutter. 9.5 API : We designed and implemented a RESTful API to expose the backend functionality. The API consisted of clearly defined endpoints, each corresponding to distinct actions or resources. We employed the appropriate 14 HTTP methods, including GET, POST, PUT, and DELETE, for each endpoint, ensuring adherence to REST principles. In our application, we have integrated an AI feature, in recommendation system for Companies., We have built a RESTful flask API to communicate between our application and the Python project. An API, which stands for application programming interface, is a program created to be used by another program. Programs often need to send and receive data from other programs or through the operating system, and application programming interfaces (APIs) have been created for this. We used Flask API because we needed python for the AI model. Flask is a web framework for Python that provides functions and services for building web applications, as well as handling HTTP requests. In our application, we created the AI model using Python, so we used the flask API to connect our python code to the flutter application. 9.6 API Testing : It is common practice to conduct routine testing on various components of the server to ensure the functionality of the API and observe the system's response when supplied with the necessary data. Postman, a software development tool, is employed for this purpose. Postman allows users to validate the requests they plan to send to the server. The process involves using a designated web server address to dispatch the request, after which the server's response is presented for examination. 15 9.7 Recommendation system: Before we started implementing the recommendation system, we looked at the methods of artificial intelligence and machine learning that suit our project, and we studied them in depth. After that, we found that the most appropriate way to implement the recommendation system is Cosine similarity. cosine similarity is used to measure the similarity between document vectors, where each document is represented as a vector in a high-dimensional space, with each dimension corresponding to a term or word in the corpus, it measures the cosine of the angle between these vectors, providing a numerical value that ranges from -1 to 1. A cosine similarity of 1 indicates that the vectors are identical, 0 implies no similarity, and -1 suggests complete dissimilarity. The system we introduced in our project is based on calculating the similarity between a student's profile and company profiles. The student's profile includes his location, specialty, and skills. Similarity is further adjusted using the company's reputation score, assuming that the reputation score is between 0 and 5. Figure 1: Recommendation system 16 We chose to use Flask for implementing this Recommendation due to its simplicity, flexibility, and ease of use for building web applications and APIs. Flask is a lightweight web framework written in Python, making it suitable for rapid development and prototyping, and for this reason:  Ease of Use: Flask is designed to be easy to understand and use. Its minimalistic approach allows developers to focus on building the application's logic without unnecessary complexity.  Integration with MongoDB: Flask works well with various databases, including MongoDB. In our project, MongoDB is used to store and retrieve company information, and Flask's simplicity facilitates integration with the MongoDB database.  Lightweight: Flask is a micro-framework, meaning it comes with the essential features needed for web development without imposing a lot of restrictions. This allows developers to choose and integrate additional components as needed. In summary, Flask offers a straightforward and efficient way to build web applications and APIs, making it a suitable choice for implementing a recommendation system like our project. And this the modules and libraries used in Flask code:  Flask: Flask is a micro web framework for Python used to develop web applications. It provides tools for routing HTTP requests, handling JSON, and rendering templates.  request: This module provides functionalities to handle HTTP requests in Flask. It is used to extract data from incoming requests.  jsonify: This function in Flask converts a Python dictionary to a JSON response, making it easy to return JSON responses from your API.  pymongo: PyMongo is the Python driver for MongoDB, a NoSQL database. It allows you to interact with MongoDB databases from a Python application.  certifi: Certifi is a Python package that provides Mozilla’s carefully curated collection of Root Certificates for validating the trustworthiness of SSL certificates while making HTTPS requests.  cosine_similarity: This function is from the scikit-learn library and is used to calculate the cosine similarity between two vectors. In this case, it is used to compare the similarity between student and company profiles. 17  CountVectorizer: Also, from scikit-learn, CountVectorizer is used to convert a collection of text documents to a matrix of token counts. It is employed here to convert text data into a format suitable for cosine similarity calculations. And below are the steps used in calculating cosine similarity:  Vectors using CountVectorizer:We used CountVectorizer to convert text data (student_profile and company profile) into digital vectors. This process converts each profile into a vector representation, where each element corresponds to a specific word count.  Calculating cosine similarity: then we used cosine_similarity from sklearn. metrics.pairwise to calculate the cosine similarity between the student and company profile vectors.The result is a similarity matrix where each element (i, j) represents the cosine similarity between the i-th student profile and the j- th company profile.  Normalization of cosine similarity: Then we normalized the cosine similarity values to be within the range [0, 1]. The normalization formula usually involves adding 1 to the similarity score and dividing it by 2, ensuring that the values lie in the range [0, 1].  Include a reputation component: then we normalized the reputation score to be within the range [0, 1]. Assuming reputation ranges from 0 to 5, divide reputation by 5. Apply a weight to the reputation component, usually a value between 0 and 1. This weight determines the impact of reputation on the final similarity score.  Combine ingredients: then we combined the normalized cosine similarity and the normalized reputation component with the given weight. The formula can be combined (normal_similarity + reputation_weight * normal_reputation) / (1 + reputation_weight).  Returns the weighted similarity score: Finally, the result was the weighted similarity score, which combines the cosine similarity and the reputation component. like this: 18 Figure 2:Top Companies rec. system 19 9.8 Project Feature: 9.8.1 Student features in the project:  Each student has a personal profile page that contains his personal information. After that, he can go to the skills page and add each skill accurately and allocate a degree of mastery. After that, he moves to the education page. On this page he can add all the things related to education, and I want to point out that he can edit and delete all the data he entered. We used flutter_staggered_grid_view library, and we took advantage of this library to determine the degree of skill.  There is a page that displays all the companies that entered the system. The student can search for the company through the filtering system, meaning that this system can help the student search for the company according to its location, field of work, part- time or full-time, or all of them together, and he can also view the information for each A company, and he can also apply for it by submitting his CV initially, and I will explain how to do that in the following point.  There is a CV page for each student, which the student does not build from scratch. Rather, our system helps the student not to fill out the data he wrote on his personal page. This makes it easier for the student and saves him time. We also left him the freedom to edit this page, after confirming that he wants this company. Sends the request  The system helps the student if he wants to review or learn new things in his field of specialization, as there is a page that provides the student with courses according to his specialization, or he can search for courses offered by a specific company, and we use url_launcher and youtube_player_flutter to integrate YouTube videos into our Flutter applications and the other to launch URLs  Our system provides the possibility for advertisements from companies to appear to students in the sense of training opportunities. These advertisements contain specific skills and details that the company wants. We also provide the student with the ability to search for training opportunities based on certain criteria.  In our application, we want to expand the horizons of practical understanding for students, so that there is a page that displays articles provided by companies to students, so that company articles can provide an effective look at how theoretical concepts are applied in the real corporate environment. This helps students understand how to transform knowledge into practical skills. We also want to update scientific knowledge so that providing articles can contribute to updating and increasing students’ scientific knowledge in certain fields. 20  There is also a page for submitting weekly reports from the student to his supervisor. This page contains a summary of the training activities, what he benefited from each week, the number of his absences, and the reason for the absence. The idea of providing a page for students’ weekly reports is an effective way to enhance communication between students and supervisors. This page helps track individual progress and motivates students to take responsibility and achieve personal and academic goals. In addition, it allows supervisors to provide constructive feedback and effective guidance, which enhances motivation and improves the overall performance of students.  Students effectively have an independent way to communicate and exchange information through a personalized notification and messaging system. They can easily communicate with their supervisors, the company and the training center via this system, which promotes effective interaction and contributes to a comprehensive learning experience. This tool allows students to exchange ideas and ask questions, as well as receive ongoing guidance and instructions, ensuring an integrated and productive learning experience.  There is also a page for the student that displays the work schedule, that is, the weekly schedule set by the company, meaning the days the student will work, the times, the start date, and the number of work weeks. 9.8.2 Company features in the project: In our project, we have dedicated pages and features designed to simplify participation and interaction for companies. The company profile serves as a central center for information that benefits the students to know general information that helps them choose companies for their university practical training, and this is the general goal of our application, as Our project offers many functions and advantages to both companies, stakeholders and institutions that may benefit from some of the students' ideas for their own interests. Below are the main features offered to businesses:  Comprehensive company profile: Companies have a dedicated profile page where they can display detailed information, including their background, location, type of company, industry, whether they work full or part-time, and any other accomplishments. This file serves as a comprehensive reference for students, supervisors, and training centers to understand the company's capabilities and expertise, and companies also have the flexibility to edit and update their profile information as needed. This ensures that the information displayed is always up- to-date and reflects the company's activities and evolving projects. In addition, companies 21 can enhance their security by changing passwords or updating their registered email within the application. This provides an additional layer of access control to the application.  Training Opportunities Posting: To facilitate seamless interaction between companies and students, our project provides a dedicated page for companies to post training opportunities. Companies can create detailed advertisements for internships, co-op programs, or other training initiatives, which are then showcased to students. This feature enhances the visibility of training opportunities and allows students to easily explore and apply for positions aligned with their career goals , In addition to training opportunities, companies have the ability to contribute valuable content through a dedicated news and articles section. This platform enables companies to share industry insights, success stories, and relevant articles directly with the student community. By incorporating these features, our project aims to create a dynamic and interactive space .  Order management: Through a page called “Request”, companies can efficiently manage training requests submitted by students. The application allows students to be sorted and filtered based on specific criteria such as specialization or academic performance, facilitating a simplified selection process. When companies receive internship applications from students who have expressed interest or applied for internship opportunities within the company, companies can either approve students directly or schedule interviews prior to final approval. The app provides a clear workflow for companies to make informed decisions about potential interns. Once a company decides to move forward with training a candidate, it can use the app to schedule interviews before confirming the student's approval. This includes determining the location, date and time of the interview, simplifying logistics for both the company and the student. Companies have the authority to review student profiles, including academic backgrounds, skills and CVs, facilitating an informed decision-making process, and assessing the qualifications and experiences of potential applicants before making a decision. 22  Student management page: In our project, the “Student” page is to simplify the process of selecting, accrediting and managing students selected by companies for their training programmes. This page acts as a central hub where companies can efficiently supervise and coordinate the various aspects of student training, so that the page Displaying a comprehensive list of approved students, once a student is approved, the company gets access to a feature that allows for the creation of a custom training schedule. This schedule includes details such as training days, training start date, and so on. Once the schedule is completed, you send it to the student.  Training Evaluation Report Interface: Our project introduces a dedicated "Training Evaluation Report" interface, designed to facilitate a systematic assessment of student training by companies. This feature streamlines the feedback process, allowing companies to provide valuable insights on a student's performance and overall training experience. The interface presents a structured set of questions covering various aspects of the student's training, including technical skills, communication, adaptability, and overall contribution. This flexibility enables companies to tailor assessments based on specific training objectives, ensuring that the feedback aligns with the unique aspects of each student's experience, Upon completion of the evaluation, companies can submit the report directly to the supervisor overseeing the student's training. This seamless integration ensures that supervisors receive timely and detailed feedback, enabling them to make informed decisions about the student's progress and performance. By introducing the Training Evaluation Report interface, our project aims to provide a structured and efficient means for companies to communicate valuable insights about the student's training journey. This contributes to a more transparent and collaborative relationship between companies, students, and supervisors, ultimately fostering an environment conducive to continuous learning and improvement.  Chat support and notification system integration: In addition to the comprehensive features described, our project includes a robust chat support system to facilitate seamless communication and a notification system to enhance user engagement. The chat support feature enables real-time communication between users, including students and businesses. The instant messaging (chat) system provides a convenient platform for general inquiries. Users can access the chat system easily, which 23 enhances fast and effective communication. The chat support system integrates seamlessly with the notification system, Notifications are personalized, allowing users to, such as approve training requests, or changes to the training schedule. This integration improves user responsiveness and engagement, and the chat support interface is designed to be easy to use. The app is designed to work on mobile and web platforms, providing businesses with flexibility and ease of access. 9.8.3 Training center features in the project:  The Training Center Front Page is a comprehensive resource providing an overview for businesses, students and training supervisors alike.  When you go to the companies' page, it displays all the companies in the system and details about them. You can also see an overview of each company, as well as the students who applied for it, as well as the approved and rejected students. You can also know the status of the students, such as whether they have completed the training or not. We have added charts that illustrate this.  The training center is also responsible for accepting students’ applications (after ensuring that they have completed the requirements of the practical training course). Our application helps workers in the practical training center by indicating whether the students have completed the course requirements or not, and they can also verify for themselves, and after verification they can approve or reject.  Also, to ensure that the companies that enter our application are reliable and not fake, there is a page to verify their information, and based on this information, acceptance is made or not.  There is also a page that displays all colleges, and also displays all specializations for each college, and also information for each specialization such as the course number, the number of training hours, the number of approved hours for the training course, the course requirements and the university supervisor for each specialization, and also all the companies that train students in this specialization.  The training center can also add a new specialization and a supervisor for this specialization, or update the data of an existing specialization, for example, such as changing the supervisor for this specialization or other information.  Also, like every user in our application, there is a notification system and a messaging system. 24 9.8.4 Supervisor Interface Features: Within the project, specialization supervisors benefit from a sophisticated and user- friendly interface tailored to meet their diverse needs in overseeing and guiding students through their university training. The interface is designed to provide a comprehensive set of tools and insights. Here are the key features in more detail: Personalized Supervisor Profile: A supervisor's profile includes basic personal information and also prominently displays their academic major. This comprehensive profile serves as a comprehensive page about the supervisor, where the supervisor can also modify and save his personal data. In addition, there is an interface that displays all the companies in the system according to the supervisor’s specialization, so that the supervisor can see the companies and information about them, and also know the students who are training in these companies and see them. There are also weekly reports submitted by students, which are a collection of details about their tasks, the challenges they face, basic learning, and the extent to which students benefit from practical training. We also have a quick search if the supervisor wants to access a specific report. There is also a standard ratings page so moderators can access detailed reports submitted by companies. These reports include qualitative feedback on student performance, allowing supervisors to gain an accurate understanding of each student's contributions and areas for development. After this evaluation, the supervisor can communicate with the student, and The meeting is determined in two ways: either through a Zoom meeting, where a link is created and sent to the student, or the second method is face-to-face, by specifying the location of the face-to-face meeting so that the supervisor can ensure the comprehensive training experience, and after that the supervisor can determine the student’s final grade either Pass or fail based on previous assessments and supervisor analysis, and the grade is sent to the student. and We wanted the evaluation of companies to be just a simple evaluation by the supervisor based on his experience in his field of specialization and his knowledge of the companies that specialize in his field of work. This evaluation will be an integral part of its use in the recommendation system. Moreover, to enhance accessibility and flexibility, the application is designed to seamlessly operate on both mobile devices and web platforms. Supervisors can access the full range of features, including student tracking. 25 Student Feature: Figure 3:Student Feature 26 AI Feature: Figure 4:AI Feature: Company Feature: Figure 5:Company Feature 27 Supervisor Feature: Figure 6:Supervisor Feature 28 Training Centre Feature: 29 Figure 7:Training Centre Feature 30 Chat and notification for all users: Figure 8:Chat and notification for all users Logo, Login and Signup: Figure 9:Logo, Login and Signup 31 10 Results And Discussion The Tech Match application is a mobile phone application and a multi-platform website used by students, companies, supervisors, and the university’s training center. Its goal is to save the student time and help him choose the appropriate company or place to complete the training course. Every user has the ability to create an account in our application. The student It can advanced search for companies suitable for training according to different criteria. There is also a special recommendation system for companies that suit the student. There are also training opportunities (advertisements) offered by companies to the student and other articles that benefit the student. It also offers the student courses according to his specialization. For the company, there is a filtering system For students applying for it, and the possibility of approving or rejecting students according to the CV or conducting an interview for the student, and then determining the student’s work schedule, and there is a strong tracking system for the student by submitting weekly reports until the completion of his training and also conducting an interview with the student in a way determined by the supervisor (Zoom or face-to-face). The training center follows up the entire process in addition to its responsibilities, for example, in adding specializations, verifying the companies and students who have joined the application, and following up on them as well. All users have the ability to communicate together through the chat system and also be alerted through the notification system All these endeavors have provided us with valuable experience and knowledge. However, it is important to acknowledge that achieving our goals has not been without its fair share of challenges, difficulties and the need to acquire new knowledge. This chapter will address the various obstacles we faced and the lessons we learned along the way. 10.1 Learning: Extensive research is necessary to get new knowledge and abilities. Ensuring efficient exploitation of the technology involved is vital and takes time and effort, particularly when utilizing new technologies. We used Flutter as our platform for the project and made use of a number of internet tools to speed up the learning process. Furthermore, We decided on Node.js and became acquainted with it by 32 reading documentation and other pertinent materials. In a similar vein, we used documentation and other resources to learn how to deal with MongoDB. 10.2 Challenges:  During the project, we encountered several challenges, and one of the significant hurdles was the frequent updates to software versions. This presented issues related to the compatibility between the code and the utilized libraries. Ensuring that the libraries were in sync with the specific software version became imperative. Consequently, we had to make necessary adjustments to the code to ensure alignment with the corresponding software version.  Another challenge was the complexity in understanding the causes of exceptions and errors in the code. The process was not always straightforward and required substantial investment in time for research and troubleshooting to pinpoint the root cause of the issues. Once the problem was identified, we proceeded to work on resolving it. 33 11 Conclusion: Our project succeeded in achieving an important goal, as it served as an essential cornerstone that reshaped the internship experience for students and empowered them to choose companies that matched their aspirations. The focus on guiding students towards inspiring internship opportunities tailored to their academic disciplines ensures that there is a meaningful connection between their educational pursuits and work experiences. Our scope of work is comprehensive, covering every major offered by the university and including all aspects associated with it. Through our app, we enable students to explore optimal training options, guiding them through a series of stages that include providing basic information and other relevant details. Furthermore, our platform offers a range of services to enhance the overall student experience. At the same time, we play a crucial role in connecting companies with well-educated students who possess skills relevant to their fields. It is worth noting that cooperation between students and companies is enhanced through the dedicated efforts of training centers and supervisors, who constantly strive to match students with the most suitable companies. Developing this application has enabled us to acquire a diverse set of skills: • We adeptly designed and built a mobile application and website by utilizing Flutter and the Dart programming language, along with Node.js. This involved tapping into Flutter's rich widget library and leveraging Dart's robust features to create a visually appealing and resilient app, while also gaining familiarity with Node.js. • During the project, we worked closely with various Flutter packages to augment the functionality of our app. These packages offered pre-built solutions and features, significantly reducing the time and effort required in the development process. • Within our application, we dealt with non-relational databases such as MongoDB and Firebase. It has enhanced our efficiency in handling and managing data effectively in a flexible and scalable way. 34 We have succeeded in creating an artificial intelligence recommendation system that analyzes students' skills and interests, extracted from their CVs, to provide personalized suggestions for suitable training opportunities with companies. This ensures a personalized and efficient matching process. We also succeeded in creating an advanced search and filtering system: the platform includes an advanced search and filtering mechanism. This enables students to explore internship companies based on various criteria, including geographic location and field of work. This feature simplifies the process of finding companies and internships that are compatible with individual interests and educational goals. And We have successfully implemented a powerful chat system within our app, providing users the ability to communicate and exchange messages in real-time to enhance user interaction. 35 12 Future work: o Continuous Enhancement of AI Recommendation System: Implement continuous learning algorithms to enhance the accuracy and relevance of the recommendation system over time. and integration of natural language processing to extract more nuanced information from CVs, ensuring a more comprehensive understanding of students' skills and interests. o The possibility of expanding the system to include a smart recruitment function, allowing students to apply for suitable jobs based on their skills and training experience. And providing job opportunities for companies to students. 36 13 References  Recommendation System (https://youtu.be/WlJLGTMGC_A?si=Gr5zLT3BqC27LtUJ)  MongoDB Connection Setup – Flutter (https://youtu.be/a9rdDfFTypU?si=0OvIjRA8P2dx6zwU)  (https://youtu.be/a9rdDfFTypU?si=LlAxYhb7EVahHcUk)  Cosine Similarity (https://youtu.be/E5rg31pstM8?si=x9Hig46vgK24Rcoj)  Node.js Crash Course Tutorial (https://youtu.be/zb3Qk8SG5Ms?si=C5wPea1MyZIDG5Cs)  Flask Tutorial (https://youtu.be/mqhxxeeTbu0?si=rM2mO-cWJzkWfROT)  Flask and Express.js(Node) (https://youtu.be/DkQ4xI-DEzc?si=ii56g58XZWFwZK51)