From 5554d6c77a58d460eaa73948ef3a82464407a5a9 Mon Sep 17 00:00:00 2001 From: khushaal-nandwani Date: Fri, 13 Sep 2024 13:27:21 -0400 Subject: [PATCH] Resume Drive Link Added --- package-lock.json | 40 +++++++++++++++++++++ package.json | 5 +-- src/Name/Name.js | 3 ++ src/Sections/Projects/ProjectSelector.js | 2 ++ src/Sections/Projects/ProjectsList.js | 1 + src/Sections/Projects/Proxiee.js | 44 ++++++++++++++++-------- src/Sections/Projects/RaffleManager.js | 35 +++++++++++++------ src/Sections/Projects/TPTracker.js | 9 +++-- src/Sections/Projects/TallyToSQL.js | 22 ++++++++++++ src/Sections/Projects/_Github.js | 19 ++++++++++ src/Sections/SectionContainer.js | 1 + src/Sections/SectionList.js | 3 +- src/SourceText.json | 21 ----------- src/Tip/Tip.js | 2 +- 14 files changed, 155 insertions(+), 52 deletions(-) create mode 100644 src/Sections/Projects/TallyToSQL.js create mode 100644 src/Sections/Projects/_Github.js delete mode 100644 src/SourceText.json diff --git a/package-lock.json b/package-lock.json index 49a1b60..0bb0c08 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,11 +14,13 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "react-icons": "^5.2.1", + "react-router-dom": "^6.26.0", "react-scripts": "5.0.1", "vercel": "^34.3.0", "web-vitals": "^2.1.4" }, "devDependencies": { + "@babel/plugin-proposal-private-methods": "^7.16.7", "tailwindcss": "^3.4.4" } }, @@ -3767,6 +3769,14 @@ } } }, + "node_modules/@remix-run/router": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.0.tgz", + "integrity": "sha512-zDICCLKEwbVYTS6TjYaWtHXxkdoUvD/QXvyVZjGCsWz5vyH7aFeONlPffPdW+Y/t6KT0MgXb2Mfjun9YpWN1dA==", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -18023,6 +18033,36 @@ "node": ">=0.10.0" } }, + "node_modules/react-router": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.0.tgz", + "integrity": "sha512-wVQq0/iFYd3iZ9H2l3N3k4PL8EEHcb0XlU2Na8nEwmiXgIUElEH6gaJDtUQxJ+JFzmIXaQjfdpcGWaM6IoQGxg==", + "dependencies": { + "@remix-run/router": "1.19.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.0.tgz", + "integrity": "sha512-RRGUIiDtLrkX3uYcFiCIxKFWMcWQGMojpYZfcstc63A1+sSnVgILGIm9gNUA6na3Fm1QuPGSBQH2EMbAZOnMsQ==", + "dependencies": { + "@remix-run/router": "1.19.0", + "react-router": "6.26.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, "node_modules/react-scripts": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", diff --git a/package.json b/package.json index 8352eaf..5a2bbec 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "react-icons": "^5.2.1", + "react-router-dom": "^6.26.0", "react-scripts": "5.0.1", "vercel": "^34.3.0", "web-vitals": "^2.1.4" @@ -38,7 +39,7 @@ ] }, "devDependencies": { - "tailwindcss": "^3.4.4", - "@babel/plugin-proposal-private-methods": "^7.16.7" + "@babel/plugin-proposal-private-methods": "^7.16.7", + "tailwindcss": "^3.4.4" } } diff --git a/src/Name/Name.js b/src/Name/Name.js index e48c1eb..cdc499d 100644 --- a/src/Name/Name.js +++ b/src/Name/Name.js @@ -5,6 +5,9 @@ function Name() {

Khushaal

Nandwani

+ + {/* Subtitle */} +

Software Developer

); diff --git a/src/Sections/Projects/ProjectSelector.js b/src/Sections/Projects/ProjectSelector.js index e7fa594..4ef9c76 100644 --- a/src/Sections/Projects/ProjectSelector.js +++ b/src/Sections/Projects/ProjectSelector.js @@ -6,11 +6,13 @@ import ExperienceData from './ExperienceData'; import Frogger from './Frogger'; import RaffleManager from './RaffleManager'; import TPTracker from './TPTracker'; +import TallyToSQL from './TallyToSQL'; const ProjectsDescription = ({ selectedProject }) => { return (
+ {selectedProject === 'tallyToSQL' && } {selectedProject === 'proxiee' && } {selectedProject === 'learningEngine' && } {selectedProject === 'questionSuggester' && } diff --git a/src/Sections/Projects/ProjectsList.js b/src/Sections/Projects/ProjectsList.js index e2d658a..5996ad5 100644 --- a/src/Sections/Projects/ProjectsList.js +++ b/src/Sections/Projects/ProjectsList.js @@ -4,6 +4,7 @@ function ProjectsList({ handleLinkClick }) { return (
handleLinkClick('proxiee', 1)}>

Proxiee

Python, Flask

+
handleLinkClick('tallyToSQL', 1)}>

Tally To SQL

XML, SQL

handleLinkClick('learningEngine', 1)}>

Learning Engine

Python, Flask

handleLinkClick('questionSuggester', 1)}>

Question Suggestor

Python, MatPlotLib, SciPy

handleLinkClick('experienceData', 1)}>

Experience Data

Python, Flask

diff --git a/src/Sections/Projects/Proxiee.js b/src/Sections/Projects/Proxiee.js index 736a3cd..0039dd4 100644 --- a/src/Sections/Projects/Proxiee.js +++ b/src/Sections/Projects/Proxiee.js @@ -1,18 +1,32 @@ +import GithubLink from "./_Github"; + const Proxiee = () => { - return ( -
-

Proxiee

-

Python, Flask

-
  • Engineered a secure server gateway, Proxiee, enabling company developers to access online -APIs such as ChatGPT and those of online internal products through a locally hosted server connected to an internet-enabled -server.
  • -
  • Implemented support for all HTTP method types, integrated API access restrictions, and designed an au- -thentication system to ensure secure connections along with an extensive logging system and a log analysis -tool.
  • -
  • Has a config file, to assign users credentials, store Authorization keys and dynamically add headers specific to APIs
  • -
    - ); -} + return ( +
    +
    +

    Proxiee

    + +
    +

    Python, Flask

    +
  • + Engineered a secure server gateway, Proxiee, enabling company developers + to access online APIs such as ChatGPT and those of online internal + products through a locally hosted server connected to an + internet-enabled server. +
  • +
  • + Implemented support for all HTTP method types, integrated API access + restrictions, and designed an au- thentication system to ensure secure + connections along with an extensive logging system and a log analysis + tool. +
  • +
  • + Has a config file, to assign users credentials, store Authorization keys + and dynamically add headers specific to APIs{" "} +
  • +
    + ); +}; export default Proxiee; -export const tags = ['Python', 'Flask', 'Backend']; \ No newline at end of file +export const tags = ["Python", "Flask", "Backend"]; diff --git a/src/Sections/Projects/RaffleManager.js b/src/Sections/Projects/RaffleManager.js index 0a6f00f..64b327b 100644 --- a/src/Sections/Projects/RaffleManager.js +++ b/src/Sections/Projects/RaffleManager.js @@ -1,13 +1,28 @@ +import GithubLink from "./_Github" + const RaffleManager = () => { - return ( -
    + return ( +
    +

    Raffle Manager

    -

    Java, MySQL, AWS

    -
  • A Java application to manager raffles, having a participant and an admin side. Create raffles, add participants, and draw winners.
  • -
  • Developed with a team of 7. Followed clean coding practices, used design patterns, and satisfied SOLID principles with an easy-to-follow package structure.
  • -
  • Hosted using Amazon Web Services (AWS) queried using MySQL. Linked to the Java app using JDBC connector and managed using MySQL Workbench.
  • -
    - ); -} + +
    +

    Java, MySQL, AWS

    +
  • + A Java application to manager raffles, having a participant and an admin + side. Create raffles, add participants, and draw winners. +
  • +
  • + Developed with a team of 7. Followed clean coding practices, used design + patterns, and satisfied SOLID principles with an easy-to-follow package + structure. +
  • +
  • + Hosted using Amazon Web Services (AWS) queried using MySQL. Linked to + the Java app using JDBC connector and managed using MySQL Workbench. +
  • +
    + ); +}; -export default RaffleManager; \ No newline at end of file +export default RaffleManager; diff --git a/src/Sections/Projects/TPTracker.js b/src/Sections/Projects/TPTracker.js index d72ed43..a3fdc23 100644 --- a/src/Sections/Projects/TPTracker.js +++ b/src/Sections/Projects/TPTracker.js @@ -1,7 +1,12 @@ +import GithubLink from "./_Github"; + const TPTracker = () => { return ( -
    -

    Toilet Paper Tracker

    +
    +
    +

    Toilet Paper Tracker

    + +

    Python, Adruino

  • A hardware project made in TartanHacks using Arduino and Python which read live data from the Arduino circuit to detect when the toilet paper would run out.
  • Once the toilet paper runs out, an email is sent using smtplib, ssl certified to the custodial staff.
  • diff --git a/src/Sections/Projects/TallyToSQL.js b/src/Sections/Projects/TallyToSQL.js new file mode 100644 index 0000000..9f64c61 --- /dev/null +++ b/src/Sections/Projects/TallyToSQL.js @@ -0,0 +1,22 @@ +import GithubLink from "./_Github" + +const TallyToSQL = () => { + return ( +
    +
    +

    Tally-To-SQL

    + +
    +

    XML, SQL, Python

    +
  • Developed a Python script to convert Tally - the largest software accounting software in India - export format XML files to an SQL database.
  • +
  • Used SQL queries to create tables and insert data into the database while providing an interactive GUI.
  • +
  • Wrote XLST scripts, to clean and modify the XML files
  • + + + +
    + ); +}; + +export default TallyToSQL; +export const tags = ["XML", "SQL", "Python"]; diff --git a/src/Sections/Projects/_Github.js b/src/Sections/Projects/_Github.js new file mode 100644 index 0000000..b6192cb --- /dev/null +++ b/src/Sections/Projects/_Github.js @@ -0,0 +1,19 @@ +import { FaGithub } from "react-icons/fa"; + +const GithubLink = ({ link }) => { + const handleGithubClick = () => { + window.open(link, "_blank"); + }; + + return ( +
    + +
    + ); +}; + +export default GithubLink; \ No newline at end of file diff --git a/src/Sections/SectionContainer.js b/src/Sections/SectionContainer.js index 48075f1..d4a4712 100644 --- a/src/Sections/SectionContainer.js +++ b/src/Sections/SectionContainer.js @@ -18,6 +18,7 @@ function SectionContainer() { projects: "projects", experience: "experience", // projects + tallyToSQL: "tallyToSQL", proxiee: "proxiee", learningEngine: "learningEngine", questionSuggester: "questionSuggester", diff --git a/src/Sections/SectionList.js b/src/Sections/SectionList.js index 0228478..1e9c140 100644 --- a/src/Sections/SectionList.js +++ b/src/Sections/SectionList.js @@ -1,6 +1,7 @@ import React from "react"; function SectionList({ handleLinkClick }) { + const ResumeLink = "https://drive.google.com/file/d/1tUCYltf8Im0r27ai1YvUVXlqEmFcDh26/view?usp=share_link" return ( ); } diff --git a/src/SourceText.json b/src/SourceText.json deleted file mode 100644 index ebce0a8..0000000 --- a/src/SourceText.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": { - "firstname": "Khushaal", - "lastname": "Nandwani" - }, - "about": "Mature Full Stack Developer ", - "links": { - "resume": { - "link": "www.google.com", - "description": "Resume" - }, - "linkedin": { - "link": "www.linkedin.com", - "description": "LinkedIn" - }, - "github": { - "link": "www.github.com", - "description": "GitHub" - } - } -} \ No newline at end of file diff --git a/src/Tip/Tip.js b/src/Tip/Tip.js index d0148b4..abb16ed 100644 --- a/src/Tip/Tip.js +++ b/src/Tip/Tip.js @@ -14,7 +14,7 @@ function Tip({ message, duration }) { return ( -
    {message}