<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Nakshatra Sharma</title>
    <description>The latest articles on DEV Community by Nakshatra Sharma (@nakshatra_sharma_8d07f4e0).</description>
    <link>https://dev.to/nakshatra_sharma_8d07f4e0</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3972309%2Fc67ae890-100b-4a14-b133-92778349f0ec.jpg</url>
      <title>DEV Community: Nakshatra Sharma</title>
      <link>https://dev.to/nakshatra_sharma_8d07f4e0</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nakshatra_sharma_8d07f4e0"/>
    <language>en</language>
    <item>
      <title>Student Placement Prediction System</title>
      <dc:creator>Nakshatra Sharma</dc:creator>
      <pubDate>Sun, 07 Jun 2026 09:37:28 +0000</pubDate>
      <link>https://dev.to/nakshatra_sharma_8d07f4e0/student-placement-prediction-system-3jck</link>
      <guid>https://dev.to/nakshatra_sharma_8d07f4e0/student-placement-prediction-system-3jck</guid>
      <description>&lt;h1&gt;
  
  
  Building a Smart Student Placement Prediction System with Flask and Machine Learning
&lt;/h1&gt;

&lt;p&gt;Finding the right career path is one of the most critical transitions in a student's academic journey. To bridge the gap between academic preparation and industry recruitment, I developed the &lt;strong&gt;Student Placement Prediction System&lt;/strong&gt;—an end-to-end, production-ready web application powered by Machine Learning. &lt;/p&gt;

&lt;p&gt;In this article, I will walk you through the system architecture, the machine learning pipeline under the hood, and how the entire application is structured.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Key Features
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;User Authentication&lt;/strong&gt;: Secure student registration and session logins, along with dedicated Administrator views.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interactive Academic Evaluation&lt;/strong&gt;: A clean student profile form capturing CGPA, class attendance, projects completed, internships, aptitude scores, and technical/communication ratings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ML Prediction Engine&lt;/strong&gt;: Real-time evaluation powered by a Scikit-learn &lt;strong&gt;Random Forest Classifier&lt;/strong&gt; that returns a placement likelihood percentage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Actionable Career Recommendations&lt;/strong&gt;: A rule-based engine that inspects weak features and generates tailored feedback (e.g., suggesting Git projects for low project counts or coding drills for low technical scores).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Admin Console &amp;amp; Analytics Hub&lt;/strong&gt;: An administrative dashboard with data filtering, CSV report downloads, and Chart.js graphs displaying class performance spreads.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Premium Responsive UI&lt;/strong&gt;: Built using Bootstrap 5 with modern glassmorphism, fluid animations, and a dynamic Light/Dark mode.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🛠️ Tech Stack &amp;amp; Architecture
&lt;/h2&gt;

&lt;p&gt;The system uses a modular, decoupled architecture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: HTML5, CSS3, JavaScript (ES6), Bootstrap 5, Chart.js (for graphics).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: Python (Flask web server framework).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database&lt;/strong&gt;: SQLite3.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Machine Learning&lt;/strong&gt;: Scikit-learn, Pandas, Numpy, Joblib.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                  +-----------------------------------+
                  |           User Browser            |
                  +-----------------+-----------------+
                                    |
                                    v (HTTP request)
                  +-----------------+-----------------+
                  |      Flask Server (app.py)        |
                  +--------+-----------------+--------+
                           |                 |
      (Auth &amp;amp; SQL Queries) |                 | (Data Transformations)
                           v                 v
+--------------------------+----+  +---------+-----------------+
| SQLite Database (database.py) |  | Preprocessor (scaler)     |
+-------------------------------+  +---------+-----------------+
                                             |
                                             v (Scaled Array)
                                   +---------+-----------------+
                                   | ML Classifier (joblib)    |
                                   +---------------------------+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🧠 The Machine Learning Pipeline
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Dataset &amp;amp; Feature Matrix
&lt;/h3&gt;

&lt;p&gt;The model analyzes nine scholastic and personal parameters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Academic Profile&lt;/strong&gt;: CGPA, Class Attendance (%).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Experience&lt;/strong&gt;: Number of Projects, Number of Internships.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cognitive &amp;amp; Soft Skills&lt;/strong&gt;: Aptitude Score (0-100), Communication Rating (1-10), Technical Rating (1-10).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demographics&lt;/strong&gt;: Age, Gender.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Preprocessing &amp;amp; Scaling
&lt;/h3&gt;

&lt;p&gt;Continuous variables (CGPA, Attendance, ratings) differ greatly in scale. To prevent features with larger ranges (like Aptitude) from biasing the classification, a &lt;code&gt;StandardScaler&lt;/code&gt; was used to standardize inputs. Categorical fields (Gender) were binary encoded.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Model Training
&lt;/h3&gt;

&lt;p&gt;We selected a &lt;strong&gt;Random Forest Classifier&lt;/strong&gt; due to its robustness against overfitting and ability to output probability scores (&lt;code&gt;predict_proba&lt;/code&gt;). Trained on 800 samples, the model achieved &lt;strong&gt;79.0% accuracy&lt;/strong&gt; on the validation set.&lt;/p&gt;




&lt;h2&gt;
  
  
  💻 Code walkthrough
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Flask Routing &amp;amp; ML Execution
&lt;/h3&gt;

&lt;p&gt;The main server endpoint receives the parameters, scales the data using the serialized scaler, feeds it to the Random Forest model, and triggers recommendations:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Scale parameters
&lt;/span&gt;&lt;span class="n"&gt;scaled_features&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scaler&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;transform&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;feature_df&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Predict probability and outcome
&lt;/span&gt;&lt;span class="n"&gt;prob&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;predict_proba&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scaled_features&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;][&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt; 
&lt;span class="n"&gt;pred_result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;predict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;scaled_features&lt;/span&gt;&lt;span class="p"&gt;)[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

&lt;span class="c1"&gt;# Generate recommendations
&lt;/span&gt;&lt;span class="n"&gt;recommendations&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;cgpa&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mf"&gt;7.5&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;recommendations&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Enhance your academic grades. Focus on raising your CGPA above 7.5 to clear recruitment filters.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;technical&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;recommendations&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Improve core programming concepts. Participate in bootcamps and coding challenges.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  SQLite DB Integrations
&lt;/h3&gt;

&lt;p&gt;SQLite acts as the system registry. It tracks users, student profiles, and historical prediction outputs using foreign key cascades:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;Students&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="nb"&gt;INTEGER&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt; &lt;span class="n"&gt;AUTOINCREMENT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;user_id&lt;/span&gt; &lt;span class="nb"&gt;INTEGER&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="nb"&gt;TEXT&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;cgpa&lt;/span&gt; &lt;span class="nb"&gt;REAL&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;FOREIGN&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;REFERENCES&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="k"&gt;DELETE&lt;/span&gt; &lt;span class="k"&gt;CASCADE&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🐳 Containerization &amp;amp; Deployment
&lt;/h2&gt;

&lt;p&gt;To simplify deployment, the project includes a &lt;code&gt;Dockerfile&lt;/code&gt; and a &lt;code&gt;docker-compose.yml&lt;/code&gt; file. This lets developers launch the entire server—complete with the WSGI Waitress setup—in seconds with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker-compose up &lt;span class="nt"&gt;--build&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📈 Conclusion
&lt;/h2&gt;

&lt;p&gt;This system demonstrates how machine learning can be cleanly integrated into standard web architectures. By combining predictive analysis with actionable recommendations, the platform moves beyond classification into a supportive career advisory portal.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Check out the full source code and setup instructions on my GitHub repository:&lt;/em&gt; &lt;br&gt;
👉 &lt;a href="https://github.com/nakshatra018/Student-Placement-Prediction" rel="noopener noreferrer"&gt;Nakshatra018 / Student-Placement-Prediction&lt;/a&gt;&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>python</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
