A Flutter app with a Laravel back end that matches a student's Project-DNA skills profile to projects and generates a work plan, risks, and an advisory readiness score.

ProjectForge is a mobile app and intelligent platform that helps final-year students choose an academic project that fits their skills, plan it, and form a balanced team. It is built around a digital skills profile (Project-DNA) created from a skills questionnaire; a weighted recommendation algorithm then matches it against the requirements of available projects, a roadmap with timeline phases and risks is generated, and a project Readiness Indicator is calculated. It was carried out by a team of students with technical assistance from Techno Enjaz.
The mobile app is built with Flutter for Android and iOS, with a Laravel (PHP) server exposing REST APIs and a MySQL database. The Gemini 3.5 Flash model is integrated to generate project descriptions, milestones, and risk suggestions, with the MCP (Model Context Protocol) used to retrieve the student's data context in a controlled way. The project stresses that the Readiness Indicator is a guidance value based on design-chosen weights, not a calibrated predictive model.
| Item | Details |
|---|---|
| Project type | Mobile app and recommendation-and-planning platform for academic projects |
| Field | Recommender systems, educational technology (EdTech), generative AI, project management |
| Project status | Implemented app with student, advisor, and admin screens, tested with mock data |
| Techno Enjaz role | Technical support and assistance to the students during project development |
| Core technologies | Flutter, Dart, Dio, Laravel, Sanctum, MySQL, Gemini 3.5 Flash, MCP |
| Outputs | Project-DNA skills profile, recommended project list, Readiness Indicator with factor analysis, work plan with phases and risks, team and supervision-request management |
Many final-year students struggle to choose a project that matches their actual skills, to plan it over time and assess its risks, and to form a team with well-distributed skills; teams are often formed around personal relationships rather than complementary abilities. The lack of a clear method and roadmap leads a share of students' software projects to stall.
Global platforms address separate parts of the problem: Devpost for team formation in hackathons, SkyHive for skills analysis with its Skill-DNA concept, and Pymetrics for estimating a person's fit for a task. ProjectForge brings these stages together in a single workflow, from skills assessment to work-plan generation, tailored to the academic setting and its time constraints.
The project was carried out academically by the students, with technical assistance and support from Techno Enjaz during development. It is presented among the office's work as an example of its support for apps that combine recommendation algorithms, Laravel back ends, and language-model integration through MCP.
The match score is computed by summing the product of the student's proficiency in each skill (1–5) and that skill's weight in the project (0–1), then dividing by the maximum proficiency (5); the closer the result is to 1, the better the match. In the documented example, a student with Flutter at level 4, Dart at level 3, and Firebase at level 2, and a project with weights 0.4, 0.3, and 0.3, gets a match score of 62%.
The indicator is a weighted sum of three factors:
| Factor | Weight | How it is calculated |
|---|---|---|
| Skill coverage | 0.5 | How well the student's skills cover the project's weighted requirements; for a team, the highest level per skill across members is used |
| Difficulty factor | 0.3 | 1 − (difficulty − 1) / 5, so the easiest project (1) approaches 1.0 and the hardest (5) approaches 0.2 |
| Team balance | 0.2 | Based on the standard deviation and mean of proficiency levels among members; 1.0 for a solo student, about 0.85 for a well-distributed four-member team, about 0.40 when 60% of the skills sit with one person |
Documented examples: a solo student with 50% coverage on a difficulty-3 project gets an indicator of 63%, and a four-member team with 78% coverage and 85% balance on a difficulty-4 project gets 68%. The project explains that these weights are design decisions, not statistically derived, because sufficient data from past projects is not available.
The system first checks whether milestones and risks are already stored for the project; otherwise it generates them from ready-made templates according to project type (mobile app, web app, intelligent system, and so on), then computes each phase's dates so that each starts as soon as the previous one ends. Each project gets three baseline risks, with additional high-impact risks added when difficulty reaches 4 or 5. The Gemini model is used to generate custom milestones when no suitable template exists.
The Flutter app requests personalized content from the Laravel server, which calls an MCP Client to pull the student's data (skills and proficiency levels) from MySQL while applying access policies; a context is then built and sent to Gemini over HTTPS, and results come back as JSON. Controls on the model's use include:
The generated risks and recommendations are advisory and do not replace the academic advisor's assessment.
| Security control | Implementation |
|---|---|
| Encrypted transport | HTTPS (TLS 1.3) with all HTTP traffic redirected |
| Authentication | Limited-validity Laravel Sanctum tokens |
| Permissions (RBAC) | RoleMiddleware for the roles: student, advisor, admin |
| API keys | Gemini keys stored in a .env file excluded from Git |
| SQL injection protection | Eloquent ORM instead of handwritten queries |
| Data separation | Student data (students) kept separate from login data (users) |
| User | Screens |
|---|---|
| Student | Welcome, login, and sign-up; skills questionnaire (3 parts); home page; available teams and projects; profile and skills; team creation; Readiness Indicator and its factors; work plan |
| Academic advisor | Dashboard; incoming supervision requests and their details; rejecting a request with a reason; profile |
| System administrator | Dashboard; project management with filtering by status, semester, and year; user and team management; an AI assistant for querying system data; general notifications and announcements; team settings |
The project documents the implemented app with screens for all three roles, the algorithms applied to worked examples (62% match, Readiness Indicators of 63% and 68%), and testing with mock data. It describes operation performance qualitatively: generating a work plan from templates is fast, Gemini-based generation depends on the network and the service's response time, usage stays within free-tier limits, and repeated results are cached.
The project states that there is currently no quantitative evaluation (such as Precision, Recall, or F1) of the recommendation and success-estimation algorithms, because labeled reference data is not available. The figures cited in the introduction about other platforms or studies (such as 90% accuracy for SkyHive) do not belong to ProjectForge.
According to the outlook in the project:
If you are working on an intelligent web platform for managing projects and teams and need technical help developing the idea or building a prototype, you can contact the Techno Enjaz office to discuss your project's requirements and the appropriate scope of support.
It is a mobile app and intelligent platform built by a team of students with technical assistance from Techno Enjaz, helping final-year students choose an academic project that fits their skills, plan it, and form a balanced team. It relies on a digital skills profile (Project-DNA), a weighted recommendation algorithm, a roadmap, and a readiness indicator.
The recommendation algorithm computes a match score by summing each skill's proficiency (1–5) multiplied by its weight in the project, then dividing by 5. The readiness indicator is a weighted sum of skill coverage (0.5), a difficulty factor (0.3), and team balance (0.2); in the documented examples a solo student scored 63% and a four-member team 68%.
The app uses Flutter and Dart with the Dio library, and the server uses Laravel with Sanctum authentication and a MySQL database. Gemini 3.5 Flash is integrated with Temperature = 0.4 and 8 function-calling tools, with MCP used to fetch student data, and three anti-hallucination layers ending in a static fallback template.
No. The project explains that the indicator is an advisory value whose weights are design decisions rather than derived from real data, and there is currently no quantitative evaluation such as Precision or Recall. It proposes evaluating it after two semesters and at least 30 projects using metrics such as R², MAE, and NDCG@k.
Students use it to build their skills profile, browse projects and teams, calculate the readiness indicator, and follow their work plan. Academic advisors handle supervision requests, accepting or rejecting them with a reason, while the system administrator manages projects, users, teams, and announcements and uses an AI assistant to query system data.
Reach out to Techno Enjaz engineering team to discuss technical feasibility, prototype hardware, and development scope.