Graphic Design Work

PROJECTS

Software Projects

Student Management System (C)

A console-based application built using C to manage student records including adding, updating, deleting, and viewing data using file handling.

C File Handling

Click below to explore the implementation

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct Student {
    int id;
    char name[50];
    float marks;
};

void addStudent() {
    FILE *fp = fopen("students.txt", "ab");
    struct Student s;

    printf("Enter ID: ");
    scanf("%d", &s.id);
    printf("Enter Name: ");
    scanf(" %[^\n]", s.name);
    printf("Enter Marks: ");
    scanf("%f", &s.marks);

    fwrite(&s, sizeof(s), 1, fp);
    fclose(fp);

    printf("Student added successfully!\\n");
}

void viewStudents() {
    FILE *fp = fopen("students.txt", "rb");
    struct Student s;

    printf("\\n--- Student List ---\\n");

    while (fread(&s, sizeof(s), 1, fp)) {
        printf("ID: %d | Name: %s | Marks: %.2f\\n", s.id, s.name, s.marks);
    }

    fclose(fp);
}

void searchStudent() {
    FILE *fp = fopen("students.txt", "rb");
    struct Student s;
    int id, found = 0;

    printf("Enter ID to search: ");
    scanf("%d", &id);

    while (fread(&s, sizeof(s), 1, fp)) {
        if (s.id == id) {
            printf("Found: %s | Marks: %.2f\\n", s.name, s.marks);
            found = 1;
        }
    }

    if (!found) printf("Student not found!\\n");

    fclose(fp);
}

void deleteStudent() {
    FILE *fp = fopen("students.txt", "rb");
    FILE *temp = fopen("temp.txt", "wb");

    struct Student s;
    int id;

    printf("Enter ID to delete: ");
    scanf("%d", &id);

    while (fread(&s, sizeof(s), 1, fp)) {
        if (s.id != id) {
            fwrite(&s, sizeof(s), 1, temp);
        }
    }

    fclose(fp);
    fclose(temp);

    remove("students.txt");
    rename("temp.txt", "students.txt");

    printf("Deleted successfully!\\n");
}

int main() {
    int choice;

    do {
        printf("\\n1. Add Student\\n2. View Students\\n3. Search\\n4. Delete\\n5. Exit\\n");
        printf("Enter choice: ");
        scanf("%d", &choice);

        switch (choice) {
            case 1: addStudent(); break;
            case 2: viewStudents(); break;
            case 3: searchStudent(); break;
            case 4: deleteStudent(); break;
            case 5: printf("Exiting...\\n"); break;
            default: printf("Invalid choice!\\n");
        }

    } while (choice != 5);

    return 0;
}

Netflix Data Analytics Dashboard (Python)

A data analysis project using Python to explore Netflix content trends including genres, country distribution, and content growth over time. Built using Pandas and Matplotlib with a Netflix-style visualization theme.

Python Pandas Matplotlib

Click below to explore the implementation


# Import Libraries
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# -----------------------------
# LOAD DATASET (ROBUST VERSION)
# -----------------------------
df = pd.read_csv("netflix_titles.csv", engine="python")

# Clean column names (IMPORTANT FIX)
df.columns = df.columns.str.strip().str.lower()

print("\nColumns in dataset:")
print(df.columns)

print("\nFirst 5 rows:")
print(df.head())

# -----------------------------
# HANDLE COLUMN NAME ISSUES
# -----------------------------

# Rename columns if needed (safety)
column_map = {
    'listed_in': 'listed_in',
    'type': 'type',
    'country': 'country',
    'date_added': 'date_added',
    'rating': 'rating',
    'duration': 'duration'
}

# Ensure required columns exist
for col in column_map:
    if col not in df.columns:
        print(f" Column '{col}' not found in dataset!")

# -----------------------------
# DATA CLEANING
# -----------------------------

# Use safe fill (won't crash)
if 'country' in df.columns:
    df['country'].fillna('Unknown', inplace=True)

if 'rating' in df.columns:
    df['rating'].fillna('Not Rated', inplace=True)

if 'duration' in df.columns:
    df['duration'].fillna('0', inplace=True)

# Convert date safely
if 'date_added' in df.columns:
    df['date_added'] = pd.to_datetime(df['date_added'], errors='coerce')
    df['year_added'] = df['date_added'].dt.year

# -----------------------------
# GENRE PROCESSING (BEST METHOD)
# -----------------------------
if 'listed_in' in df.columns:
    genre_list = df['listed_in'].str.split(',').explode().str.strip()
else:
    genre_list = pd.Series()

# -----------------------------
# SHOW INSIGHTS FIRST (IMPORTANT)
# -----------------------------
print("\n========== FINAL INSIGHTS ==========")

if not genre_list.empty:
    print(" Most Popular Genre:", genre_list.value_counts().idxmax())

if 'country' in df.columns:
    print(" Top Country:", df['country'].value_counts().idxmax())

if 'year_added' in df.columns:
    print(" Most Active Year:", df['year_added'].value_counts().idxmax())

if 'type' in df.columns:
    print("\n Content Distribution:")
    print(df['type'].value_counts())

# -----------------------------
# GRAPH SETTINGS
# -----------------------------
plt.style.use('dark_background')

# -----------------------------
# 1. GENRE GRAPH
# -----------------------------
if not genre_list.empty:
    plt.figure(figsize=(10,6))
    genre_list.value_counts().head(10).plot(kind='bar')
    plt.title("Top Genres on Netflix")
    plt.xlabel("Genre")
    plt.ylabel("Count")
    plt.xticks(rotation=45)
    plt.tight_layout()
    plt.show()

# -----------------------------
# 2. COUNTRY GRAPH
# -----------------------------
if 'country' in df.columns:
    plt.figure(figsize=(10,6))
    df['country'].value_counts().head(10).plot(kind='bar')
    plt.title("Top Countries Producing Content")
    plt.xlabel("Country")
    plt.ylabel("Count")
    plt.xticks(rotation=45)
    plt.tight_layout()
    plt.show()
# -----------------------------
# 3. TREND GRAPH
# -----------------------------
if 'year_added' in df.columns:
    plt.figure(figsize=(10,6))
    df['year_added'].value_counts().sort_index().plot()
    plt.title("Content Added Over Years")
    plt.xlabel("Year")
    plt.ylabel("Count")
    plt.tight_layout()
    plt.show()

# -----------------------------
# 4. PIE CHART
# -----------------------------
if 'type' in df.columns:
    plt.figure(figsize=(6,6))
    df['type'].value_counts().plot(kind='pie', autopct='%1.1f%%')
    plt.title("Movies vs TV Shows")
    plt.ylabel("")
    plt.tight_layout()
    plt.show()
# -----------------------------
# 5. RATINGS GRAPH
# -----------------------------
if 'rating' in df.columns:
    plt.figure(figsize=(12,8))
    df['rating'].value_counts().head(10).plot(kind='bar')
    plt.title("Top Ratings on Netflix")
    plt.xlabel("Rating")
    plt.ylabel("Count")
    plt.xticks(rotation=45)
    plt.show()

# Keep terminal open
input("\nPress Enter to exit...")