From 918f620f136978ad594d90c7641df9a736565c08 Mon Sep 17 00:00:00 2001 From: priyakalamkar555-art Date: Sat, 30 May 2026 00:47:12 +0530 Subject: [PATCH] done --- revati-kadam-portfolio/css/style.css | 195 ++++++++++++++++++++ revati-kadam-portfolio/data/education.json | 25 +++ revati-kadam-portfolio/data/experience.json | 28 +++ revati-kadam-portfolio/index.html | 13 ++ revati-kadam-portfolio/js/main.js | 123 ++++++------ student-task-manager | 1 + 6 files changed, 315 insertions(+), 70 deletions(-) create mode 100644 revati-kadam-portfolio/data/education.json create mode 100644 revati-kadam-portfolio/data/experience.json create mode 160000 student-task-manager diff --git a/revati-kadam-portfolio/css/style.css b/revati-kadam-portfolio/css/style.css index 2b76e2b..daa6290 100644 --- a/revati-kadam-portfolio/css/style.css +++ b/revati-kadam-portfolio/css/style.css @@ -1252,4 +1252,199 @@ body.light-theme .menu button { background: #e2e8f0; color: #0f172a; border-color: rgba(0,0,0,0.15); +} + +/* ── EXPERIENCE & EDUCATION TIMELINE ── */ +.timeline { + display: flex; + flex-direction: column; + gap: 28px; + position: relative; + padding-left: 40px; +} + +.timeline::before { + content: ""; + position: absolute; + left: 0; + top: 0; + bottom: 0; + width: 2px; + background: linear-gradient(180deg, var(--primary), transparent); + border-radius: 2px; +} + +.timeline-item { + position: relative; + background: var(--card); + border: 1px solid var(--border); + border-radius: 14px; + padding: 28px; + transition: all 0.35s ease; + overflow: hidden; +} + +.timeline-item::before { + content: ""; + position: absolute; + left: -48px; + top: 32px; + width: 18px; + height: 18px; + background: var(--card); + border: 3px solid var(--primary); + border-radius: 50%; + transition: all 0.35s ease; +} + +.timeline-item:hover { + transform: translateX(8px); + border-color: rgba(59,130,246,0.3); + box-shadow: 0 12px 35px rgba(59,130,246,0.15); +} + +.timeline-item:hover::before { + background: var(--primary); + box-shadow: 0 0 20px rgba(59,130,246,0.5); +} + +.timeline-item-header { + display: flex; + justify-content: space-between; + align-items: baseline; + gap: 16px; + margin-bottom: 12px; + flex-wrap: wrap; +} + +.timeline-item-title { + font-size: 18px; + font-weight: 700; + color: var(--text); + margin: 0; +} + +.timeline-item-subtitle { + font-size: 15px; + color: var(--primary); + font-weight: 600; + margin: 0; +} + +.timeline-item-duration { + font-size: 13px; + color: var(--text-muted-3); + white-space: nowrap; + font-weight: 500; +} + +.timeline-item-description { + font-size: 14px; + color: var(--text-muted-2); + line-height: 1.7; + margin: 16px 0; +} + +.timeline-item-list { + list-style: none; + padding: 0; + margin: 14px 0; + display: flex; + flex-direction: column; + gap: 10px; +} + +.timeline-item-list li { + font-size: 14px; + color: var(--text-muted-2); + padding-left: 20px; + position: relative; +} + +.timeline-item-list li::before { + content: "▸"; + position: absolute; + left: 4px; + color: var(--primary); + font-weight: bold; +} + +.timeline-item-tags { + display: flex; + flex-wrap: wrap; + gap: 8px; + margin-top: 14px; +} + +.timeline-tag { + background: rgba(59,130,246,0.12); + color: var(--primary); + font-size: 12px; + padding: 6px 12px; + border-radius: 20px; + border: 1px solid rgba(59,130,246,0.2); + font-weight: 500; +} + +.education-gpa { + display: inline-block; + background: linear-gradient(135deg, rgba(59,130,246,0.15), rgba(124,58,237,0.15)); + color: var(--primary); + padding: 4px 12px; + border-radius: 20px; + font-size: 12px; + font-weight: 600; + margin-left: 8px; + border: 1px solid rgba(59,130,246,0.2); +} + +/* Light Theme Timeline */ +body.light-theme .timeline-item { + background: #f1f5f9; + border-color: rgba(0,0,0,0.1); +} + +body.light-theme .timeline-item::before { + background: #f8fafc; +} + +body.light-theme .timeline-item-title { + color: #0f172a; +} + +body.light-theme .timeline-item-description, +body.light-theme .timeline-item-list li { + color: rgba(15,23,42,0.65); +} + +body.light-theme .timeline-tag { + background: rgba(59,130,246,0.08); +} + +/* Mobile Timeline */ +@media (max-width: 768px) { + .timeline { + padding-left: 30px; + } + + .timeline-item::before { + left: -40px; + } + + .timeline-item { + padding: 20px; + } + + .timeline-item-header { + flex-direction: column; + gap: 8px; + } + + .timeline-item-title { + font-size: 16px; + } + + .timeline-item-duration { + white-space: normal; + } } \ No newline at end of file diff --git a/revati-kadam-portfolio/data/education.json b/revati-kadam-portfolio/data/education.json new file mode 100644 index 0000000..60f731b --- /dev/null +++ b/revati-kadam-portfolio/data/education.json @@ -0,0 +1,25 @@ +[ + { + "degree": "Bachelor of Computer Science", + "institution": "Your University Name", + "duration": "timeline of your degree (e.g., 2022 - 2026)", + "gpa": "your GPA (if applicable)", + "highlights": [ + "your core subjects ", + "Strong focus on Web Development & Software Engineering", + "Active participant in coding competitions and hackathons", + "Maintaining strong academic performance in all coursework" + ] + }, + { + "degree": "Higher Secondary (12th)", + "institution": "Your School Name", + "duration": "timeline of your education (e.g., 2020 - 2022)", + "highlights": [ + "Science Stream with (your scores/grades)", + "Strong foundation in your core subjects (e.g., Physics, Chemistry, Mathematics)", + "Completed first web development projects during school", + "Participated in science exhibitions and tech clubs" + ] + } +] diff --git a/revati-kadam-portfolio/data/experience.json b/revati-kadam-portfolio/data/experience.json new file mode 100644 index 0000000..0f78301 --- /dev/null +++ b/revati-kadam-portfolio/data/experience.json @@ -0,0 +1,28 @@ +[ + { + "title": "Full Stack Developer", + "company": "(Your Company Name or Internship)", + "duration": "timeline of your experience if any (e.g., 2022 - Present)", + "description": "Developed and maintained responsive web applications with modern tech stack. Collaborated with team to deliver high-quality solutions for employee tracking and management.", + "achievements": [ + "Built comprehensive employee tracking portal with real-time data management", + "Implemented secure authentication and role-based dashboard features", + "Improved application performance by 40% through optimization", + "Collaborated with cross-functional teams to deliver on time" + ], + "tech": ["React", "Node.js", "MongoDB", "HTML", "CSS", "JavaScript"] + }, + { + "title": "Web Developer", + "company": "(Your Company Name or Freelance)", + "duration": "timeline of your experience if any (e.g., 2022 - Present)", + "description": "Creating custom websites and web applications for small businesses and startups. Specializing in frontend optimization and responsive design.", + "achievements": [ + "Delivered 5+ responsive websites with excellent user experience", + "Specialized in frontend optimization and SEO best practices", + "Maintained 100% client satisfaction rate with timely delivery", + "Incorporated modern design patterns and accessibility standards" + ], + "tech": ["HTML", "CSS", "JavaScript", "React", "Responsive Design"] + } +] diff --git a/revati-kadam-portfolio/index.html b/revati-kadam-portfolio/index.html index 1bf2a0c..d2cfced 100644 --- a/revati-kadam-portfolio/index.html +++ b/revati-kadam-portfolio/index.html @@ -19,6 +19,8 @@
  • Home
  • About
  • Skills
  • +
  • Experience
  • +
  • Education
  • Projects
  • Contact
  • @@ -168,6 +170,16 @@

    Skills & Expertise

    +
    +

    Work Experience

    +
    +
    + +
    +

    Education

    +
    +
    +

    Projects

    @@ -214,6 +226,7 @@

    Contact Me

    + \ No newline at end of file diff --git a/revati-kadam-portfolio/js/main.js b/revati-kadam-portfolio/js/main.js index 4898210..929a721 100644 --- a/revati-kadam-portfolio/js/main.js +++ b/revati-kadam-portfolio/js/main.js @@ -1,90 +1,73 @@ -// Load skills -fetch("data/skills.json") +// Load experience +fetch("data/experience.json") .then(res => res.json()) .then(data => { + const container = document.getElementById("experience-container"); - const container = - document.getElementById("skills-container"); + data.forEach(experience => { + const item = document.createElement("div"); + item.className = "timeline-item"; - const tabs = - document.querySelectorAll(".tab-btn"); + const achievementsList = experience.achievements + .map(achievement => `
  • ${achievement}
  • `) + .join(""); - function renderSkills(category) { - - container.innerHTML = ""; - - data[category].forEach(skill => { - - const card = document.createElement("div"); - - card.className = - skill.featured - ? "skill-card featured" - : "skill-card"; - - card.innerHTML = ` -
    - -

    ${skill.name}

    - - ${ - skill.level - ? ` - ${skill.level} - ` - : "" - } + const techTags = experience.tech + .map(tech => `${tech}`) + .join(""); + item.innerHTML = ` +
    +
    +

    ${experience.title}

    +

    ${experience.company}

    - `; - - container.appendChild(card); - - }); - } - - // Default category - renderSkills("frontend"); - - tabs.forEach(tab => { - - tab.addEventListener("click", () => { - - tabs.forEach(btn => - btn.classList.remove("active") - ); - - tab.classList.add("active"); - - const category = - tab.dataset.category; - - renderSkills(category); - - }); + ${experience.duration} +
    +

    ${experience.description}

    +
      + ${achievementsList} +
    +
    + ${techTags} +
    + `; + container.appendChild(item); }); - }); -// Load projects -fetch("data/projects.json") +// Load education +fetch("data/education.json") .then(res => res.json()) .then(data => { - const container = document.getElementById("projects-container"); + const container = document.getElementById("education-container"); + + data.forEach(edu => { + const item = document.createElement("div"); + item.className = "timeline-item"; - data.forEach(project => { - const div = document.createElement("div"); + const highlightsList = edu.highlights + .map(highlight => `
  • ${highlight}
  • `) + .join(""); - div.innerHTML = ` -

    ${project.name}

    - -
    - Live | - GitHub + const gpaDisplay = edu.gpa ? `GPA: ${edu.gpa}` : ""; + + item.innerHTML = ` +
    +
    +

    ${edu.degree}

    +

    ${edu.institution}

    +
    + ${edu.duration} +
    + ${gpaDisplay} +
      + ${highlightsList} +
    `; - container.appendChild(div); + container.appendChild(item); }); }); \ No newline at end of file diff --git a/student-task-manager b/student-task-manager new file mode 160000 index 0000000..dcf3e81 --- /dev/null +++ b/student-task-manager @@ -0,0 +1 @@ +Subproject commit dcf3e81dc9b4bf6c2cdda130121c272e01e5b401