diff --git a/Tejeshwar_Reddy.pdf b/Tejeshwar_Reddy.pdf new file mode 100644 index 0000000..cf8925a Binary files /dev/null and b/Tejeshwar_Reddy.pdf differ diff --git a/index.html b/index.html index 6342136..b5d51e9 100644 --- a/index.html +++ b/index.html @@ -1,452 +1,404 @@ - - - - - Epicman25's Space - - - - - - - - - - - - -
- -
- -
-
- Me -

______________________________________

-

Tejeshwar Reddy Devalapalli

-

epicman25

-

- I'm - - - -

-
-
-
- - - +
+

SwissRe Global Business Solutions Pvt Ltd

+

Campus Intern

+ Worked in a GeoSpatial Data team to implement the analytical solutions. +
    +
  • + Written Python scripts to automate the extraction, transformation and loading of the geo spatial data on azure data bricks. +
  • +
  • Built pipelines to achieve efficient processing of Geospatial data on Azure Data Factory
  • +
  • Implemented STACAPI for the metadata extraction and searching of the Geospatial data.
  • +
-
-
-

About Me

-

- Hi visitor, Tejeshwar here, Welcome to my little space on the internet. I am a passionate software - developer and a problem solver in permanent beta.Have a habit of building backend using python - frameworks. Learning new things, making stuff, and exploring technology is my passion.
-
- Feel free to - shoot me a mail - if anything here managed to catch your attention. -

-
-
-

Experience

-
-
-

Healthyverse

-

Backend Developer

- Working in a Backend role implementing solutions for the needs of a startup. -
    -
  • - Developed several API's using Python framework called - FastAPI -
  • -
  • Integrated Firebase JWT services for user authentication.
  • -
  • Wrote API's for handling media files stored in Azure Blob storage.
  • -
  • Migrated code from github projects to Azure
  • -
  • - Wrote extensive tests for almost all production code, followed best practices for clean - code. -
  • -
-
-
-

CodeChef SRMAP Chapter

-

Executive Member

-
    -
  • - Introduced competetive programming to the students in the university and formed a community - for programming enthusiasts. -
  • -
  • - Got to interact with students across the verious chapters and got to learn about the - different aspects of programming. -
  • -
  • - Raise awareness among students about the importance of clean code and open source software. -
  • -
-
-
-

APSSDC

-

Web Development Intern

-
    -
  • - It was a training internship in which I learnt about full stack development using Django -
  • -
  • Built a web app for task management and remainders using Django. cloud.
  • -
-
+
+

Healthyverse

+

Backend Developer

+ Wroked in a Backend role implementing solutions for the needs of a startup. +
    +
  • + Developed several API's using Python framework called + FastAPI +
  • +
  • Integrated Firebase JWT services for user authentication.
  • +
  • Wrote API's for handling media files stored in Azure Blob storage.
  • +
  • Migrated code from github projects to Azure
  • +
  • + Wrote extensive tests for almost all production code, followed best practices for clean + code. +
  • +
-
-
-

Projects

-

Some useful, some stupid, all fun!

-
- - -
-
-
-

Education

-
-

SRM University,Andhra Pradesh

- August 2019 - Present -

Bachelor of Technology in Computer Science & Engineering

+
+

CodeChef SRMAP Chapter

+

Executive Member

  • - Spent most of my time self-learning, doing Open-Source projects, problem-solving, and learning - new technologies. + Introduced competetive programming to the students in the university and formed a community + for programming enthusiasts. +
  • +
  • + Got to interact with students across the verious chapters and got to learn about the + different aspects of programming.
  • - Learned about core CS concepts like Data Structures, Algorithms, Operating Systems, Databases, - Networking etc. + Raise awareness among students about the importance of clean code and open source software.
  • -
  • Doing a major in Computer Science and Engineering, with a CGPA of 9.09/10.
- -
-

Sri Chaitanya Junior College

- 2017 - 2019 -

Higher Secondary

+
+

APSSDC

+

Web Development Intern

    -
  • Graduated Higher Secondary with Maths, Physics, Chemistry, with a CGPA of 9.88/10
  • +
  • + It was a training internship in which I learnt about full stack development using Django +
  • +
  • Built a web app for task management and remainders using Django. cloud.
- +
+
+
+

Projects

+

Some useful, some stupid, all fun!

+
+ +
-
-

Skills

-

- I consider myself a tech agnostic developer and can easily pickup new skills depending on the task, - these are some of the tools that I have worked with over the years. -

+
+
+

Education

+
+

SRM University,Andhra Pradesh

+ August 2019 - May 2023 +

Bachelor of Technology in Computer Science & Engineering

  • - Python -
  • -
  • - FastAPI -
  • -
  • - Django -
  • -
  • - C -
  • -
  • - C++ -
  • -
  • - Shell -
  • -
  • - Go -
  • -
  • - Flask -
  • - -
  • Markdown
  • -
  • - HTML + Spent most of my time self-learning, doing Open-Source projects, problem-solving, and learning + new technologies.
  • - CSS + Learned about core CS concepts like Data Structures, Algorithms, Operating Systems, Databases, + Networking etc.
  • -
  • - Bootstrap -
  • -
  • - Firebase -
  • -
  • - Azure -
  • -
  • - MySQL -
  • -
  • - PostgreSQL -
  • -
  • MongoDB
  • -
  • - Linux -
  • -
  • - Docker -
  • -
  • AWS
  • -
  • Heroku
  • -
  • - Jupyter -
  • -
  • VS Code
  • -
  • Git
  • -
  • Google Cloud
  • +
  • Graduated in Computer Science and Engineering, with a CGPA of 9.05/10.
+
+ +
+

Sri Chaitanya Junior College

+ 2017 - 2019 +

Higher Secondary

+
    +
  • Graduated Higher Secondary with Maths, Physics, Chemistry, with a CGPA of 9.88/10
  • +
+
+ +
+
+

Skills

+

+ I consider myself a tech agnostic developer and can easily pickup new skills depending on the task, + these are some of the tools that I have worked with over the years. +

+ +
+ + + + + + + + + \ No newline at end of file diff --git a/response.json b/response.json deleted file mode 100644 index 88586d6..0000000 --- a/response.json +++ /dev/null @@ -1 +0,0 @@ -{"openapi":"3.0.2","info":{"title":"stac-fastapi","description":"stac-fastapi","version":"0.1"},"paths":{"/":{"get":{"summary":"Landing Page","description":"Endpoint.","operationId":"Landing_Page__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/conformance":{"get":{"summary":"Conformance Classes","description":"Endpoint.","operationId":"Conformance_Classes_conformance_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/collections/{collection_id}/items/{item_id}":{"get":{"summary":"Get Item","description":"Endpoint.","operationId":"Get_Item_collections__collection_id__items__item_id__get","parameters":[{"description":"Collection ID","required":true,"schema":{"title":"Collection Id","type":"string","description":"Collection ID"},"name":"collection_id","in":"path"},{"description":"Item ID","required":true,"schema":{"title":"Item Id","type":"string","description":"Item ID"},"name":"item_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Transaction Extension"],"summary":"Update Item","description":"Endpoint.","operationId":"Update_Item_collections__collection_id__items__item_id__put","parameters":[{"description":"Collection ID","required":true,"schema":{"title":"Collection Id","type":"string","description":"Collection ID"},"name":"collection_id","in":"path"},{"description":"Item ID","required":true,"schema":{"title":"Item Id","type":"string","description":"Item ID"},"name":"item_id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Transaction Extension"],"summary":"Delete Item","description":"Endpoint.","operationId":"Delete_Item_collections__collection_id__items__item_id__delete","parameters":[{"description":"Collection ID","required":true,"schema":{"title":"Collection Id","type":"string","description":"Collection ID"},"name":"collection_id","in":"path"},{"description":"Item ID","required":true,"schema":{"title":"Item Id","type":"string","description":"Item ID"},"name":"item_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/search":{"get":{"summary":"Search","description":"Endpoint.","operationId":"Search_search_get","parameters":[{"required":false,"schema":{"title":"Collections","type":"string"},"name":"collections","in":"query"},{"required":false,"schema":{"title":"Ids","type":"string"},"name":"ids","in":"query"},{"required":false,"schema":{"title":"Bbox","type":"string"},"name":"bbox","in":"query"},{"required":false,"schema":{"title":"Intersects","type":"string"},"name":"intersects","in":"query"},{"required":false,"schema":{"title":"Datetime","type":"string"},"name":"datetime","in":"query"},{"required":false,"schema":{"title":"Limit","type":"integer","default":10},"name":"limit","in":"query"},{"required":false,"schema":{"title":"Query","type":"string"},"name":"query","in":"query"},{"required":false,"schema":{"title":"Sortby","type":"string"},"name":"sortby","in":"query"},{"required":false,"schema":{"title":"Fields","type":"string"},"name":"fields","in":"query"},{"required":false,"schema":{"title":"Token","type":"string"},"name":"token","in":"query"},{"required":false,"schema":{"title":"Filter","type":"string"},"name":"filter","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/geo+json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Search","description":"Endpoint.","operationId":"Search_search_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchPostRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/geo+json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/collections":{"get":{"summary":"Get Collections","description":"Endpoint.","operationId":"Get_Collections_collections_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"put":{"tags":["Transaction Extension"],"summary":"Update Collection","description":"Endpoint.","operationId":"Update_Collection_collections_put","requestBody":{"content":{"application/json":{"schema":{"title":"Request Data","type":"object"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Transaction Extension"],"summary":"Create Collection","description":"Endpoint.","operationId":"Create_Collection_collections_post","requestBody":{"content":{"application/json":{"schema":{"title":"Request Data","type":"object"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/collections/{collection_id}":{"get":{"summary":"Get Collection","description":"Endpoint.","operationId":"Get_Collection_collections__collection_id__get","parameters":[{"description":"Collection ID","required":true,"schema":{"title":"Collection Id","type":"string","description":"Collection ID"},"name":"collection_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Transaction Extension"],"summary":"Delete Collection","description":"Endpoint.","operationId":"Delete_Collection_collections__collection_id__delete","parameters":[{"description":"Collection ID","required":true,"schema":{"title":"Collection Id","type":"string","description":"Collection ID"},"name":"collection_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/collections/{collection_id}/items":{"get":{"summary":"Get Itemcollection","description":"Endpoint.","operationId":"Get_ItemCollection_collections__collection_id__items_get","parameters":[{"description":"Collection ID","required":true,"schema":{"title":"Collection Id","type":"string","description":"Collection ID"},"name":"collection_id","in":"path"},{"required":false,"schema":{"title":"Limit","type":"integer","default":10},"name":"limit","in":"query"},{"required":false,"schema":{"title":"Bbox","type":"string"},"name":"bbox","in":"query"},{"required":false,"schema":{"title":"Datetime","type":"string"},"name":"datetime","in":"query"},{"required":false,"schema":{"title":"Token","type":"string"},"name":"token","in":"query"}],"responses":{"200":{"description":"Successful Response","content":{"application/geo+json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Transaction Extension"],"summary":"Create Item","description":"Endpoint.","operationId":"Create_Item_collections__collection_id__items_post","parameters":[{"description":"Collection ID","required":true,"schema":{"title":"Collection Id","type":"string","description":"Collection ID"},"name":"collection_id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Item"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/queryables":{"get":{"tags":["Filter Extension"],"summary":"Queryables","description":"Endpoint.","operationId":"Queryables_queryables_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/collections/{collection_id}/queryables":{"get":{"tags":["Filter Extension"],"summary":"Collection Queryables","description":"Endpoint.","operationId":"Collection_Queryables_collections__collection_id__queryables_get","parameters":[{"description":"Collection ID","required":true,"schema":{"title":"Collection Id","type":"string","description":"Collection ID"},"name":"collection_id","in":"path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/collections/{collection_id}/bulk_items":{"post":{"tags":["Bulk Transaction Extension"],"summary":"Bulk Create Item","description":"Endpoint.","operationId":"Bulk_Create_Item_collections__collection_id__bulk_items_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Items"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Bulk Create Item Collections Collection Id Bulk Items Post","type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/_mgmt/ping":{"get":{"tags":["Liveliness/Readiness"],"summary":"Ping","description":"Liveliness/readiness probe.","operationId":"ping__mgmt_ping_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"FilterLang":{"title":"FilterLang","enum":["cql-json","cql2-json","cql2-text"],"type":"string","description":"Choices for filter-lang value in a POST request.\n\nBased on https://github.com/radiantearth/stac-api-spec/tree/master/fragments/filter#queryables\n\nNote the addition of cql2-json, which is used by the pgstac backend,\nbut is not included in the spec above."},"HTTPValidationError":{"title":"HTTPValidationError","type":"object","properties":{"detail":{"title":"Detail","type":"array","items":{"$ref":"#/components/schemas/ValidationError"}}}},"Item":{"title":"Item","type":"object","properties":{"type":{"title":"Type","type":"string"},"stac_version":{"title":"Stac Version","type":"string"},"stac_extensions":{"title":"Stac Extensions","type":"array","items":{"type":"string"}},"id":{"title":"Id","type":"string"},"geometry":{"title":"Geometry","type":"object"},"bbox":{"title":"Bbox","type":"array","items":{"anyOf":[{"type":"number"},{"type":"integer"}]}},"properties":{"title":"Properties","type":"object"},"links":{"title":"Links","type":"array","items":{"type":"object"}},"assets":{"title":"Assets","type":"object"},"collection":{"title":"Collection","type":"string"}}},"Items":{"title":"Items","type":"object","properties":{"items":{"title":"Items","type":"object","extra":{}}},"description":"A group of STAC Item objects, in the form of a dictionary from Item.id -> Item."},"LineString":{"title":"LineString","required":["coordinates"],"type":"object","properties":{"type":{"title":"Type","type":"string","default":"LineString","const":"LineString"},"coordinates":{"title":"Coordinates","minItems":2,"type":"array","items":{"anyOf":[{"maxItems":2,"minItems":2,"type":"array","items":[{"type":"number"},{"type":"number"}]},{"maxItems":3,"minItems":3,"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]}]}}},"description":"LineString Model"},"MultiLineString":{"title":"MultiLineString","required":["coordinates"],"type":"object","properties":{"type":{"title":"Type","type":"string","default":"MultiLineString","const":"MultiLineString"},"coordinates":{"title":"Coordinates","minItems":1,"type":"array","items":{"minItems":2,"type":"array","items":{"anyOf":[{"maxItems":2,"minItems":2,"type":"array","items":[{"type":"number"},{"type":"number"}]},{"maxItems":3,"minItems":3,"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]}]}}}},"description":"MultiLineString Model"},"MultiPoint":{"title":"MultiPoint","required":["coordinates"],"type":"object","properties":{"type":{"title":"Type","type":"string","default":"MultiPoint","const":"MultiPoint"},"coordinates":{"title":"Coordinates","minItems":1,"type":"array","items":{"anyOf":[{"maxItems":2,"minItems":2,"type":"array","items":[{"type":"number"},{"type":"number"}]},{"maxItems":3,"minItems":3,"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]}]}}},"description":"MultiPoint Model"},"MultiPolygon":{"title":"MultiPolygon","required":["coordinates"],"type":"object","properties":{"type":{"title":"Type","type":"string","default":"MultiPolygon","const":"MultiPolygon"},"coordinates":{"title":"Coordinates","minItems":1,"type":"array","items":{"minItems":1,"type":"array","items":{"minItems":4,"type":"array","items":{"anyOf":[{"maxItems":2,"minItems":2,"type":"array","items":[{"type":"number"},{"type":"number"}]},{"maxItems":3,"minItems":3,"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]}]}}}}},"description":"MultiPolygon Model"},"Point":{"title":"Point","required":["coordinates"],"type":"object","properties":{"type":{"title":"Type","type":"string","default":"Point","const":"Point"},"coordinates":{"title":"Coordinates","anyOf":[{"maxItems":2,"minItems":2,"type":"array","items":[{"type":"number"},{"type":"number"}]},{"maxItems":3,"minItems":3,"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]}]}},"description":"Point Model"},"Polygon":{"title":"Polygon","required":["coordinates"],"type":"object","properties":{"type":{"title":"Type","type":"string","default":"Polygon","const":"Polygon"},"coordinates":{"title":"Coordinates","minItems":1,"type":"array","items":{"minItems":4,"type":"array","items":{"anyOf":[{"maxItems":2,"minItems":2,"type":"array","items":[{"type":"number"},{"type":"number"}]},{"maxItems":3,"minItems":3,"type":"array","items":[{"type":"number"},{"type":"number"},{"type":"number"}]}]}}}},"description":"Polygon Model"},"PostFieldsExtension":{"title":"PostFieldsExtension","type":"object","properties":{"include":{"title":"Include","uniqueItems":true,"type":"array","items":{"type":"string"},"default":[]},"exclude":{"title":"Exclude","uniqueItems":true,"type":"array","items":{"type":"string"},"default":[]}},"description":"FieldsExtension.\n\nAttributes:\n include: set of fields to include.\n exclude: set of fields to exclude."},"SearchPostRequest":{"title":"SearchPostRequest","type":"object","properties":{"collections":{"title":"Collections","type":"array","items":{"type":"string"},"extra":{}},"ids":{"title":"Ids","type":"array","items":{"type":"string"},"extra":{}},"bbox":{"title":"Bbox","anyOf":[{"maxItems":4,"minItems":4,"type":"array","items":[{"anyOf":[{"type":"number"},{"type":"integer"}]},{"anyOf":[{"type":"number"},{"type":"integer"}]},{"anyOf":[{"type":"number"},{"type":"integer"}]},{"anyOf":[{"type":"number"},{"type":"integer"}]}]},{"maxItems":6,"minItems":6,"type":"array","items":[{"anyOf":[{"type":"number"},{"type":"integer"}]},{"anyOf":[{"type":"number"},{"type":"integer"}]},{"anyOf":[{"type":"number"},{"type":"integer"}]},{"anyOf":[{"type":"number"},{"type":"integer"}]},{"anyOf":[{"type":"number"},{"type":"integer"}]},{"anyOf":[{"type":"number"},{"type":"integer"}]}]}],"extra":{}},"intersects":{"title":"Intersects","anyOf":[{"$ref":"#/components/schemas/Point"},{"$ref":"#/components/schemas/MultiPoint"},{"$ref":"#/components/schemas/LineString"},{"$ref":"#/components/schemas/MultiLineString"},{"$ref":"#/components/schemas/Polygon"},{"$ref":"#/components/schemas/MultiPolygon"}],"extra":{}},"datetime":{"title":"Datetime","type":"string","extra":{}},"limit":{"title":"Limit","maximum":10000.0,"exclusiveMinimum":0.0,"type":"integer","default":10,"extra":{}},"conf":{"title":"Conf","type":"object","extra":{}},"query":{"title":"Query","type":"object","additionalProperties":{"type":"object"},"extra":{}},"sortby":{"title":"Sortby","type":"array","items":{"$ref":"#/components/schemas/SortExtension"},"extra":{}},"fields":{"title":"Fields","allOf":[{"$ref":"#/components/schemas/PostFieldsExtension"}],"default":{"include":[],"exclude":[]},"extra":{}},"token":{"title":"Token","type":"string","extra":{}},"filter":{"title":"Filter","type":"object","extra":{}},"filter-crs":{"title":"Filter-Crs","type":"string","extra":{}},"filter-lang":{"allOf":[{"$ref":"#/components/schemas/FilterLang"}],"default":"cql-json","extra":{}}},"description":"Search model.\n\nOverrides the validation for datetime from the base request model."},"SortDirections":{"title":"SortDirections","enum":["asc","desc"],"type":"string","description":"An enumeration."},"SortExtension":{"title":"SortExtension","required":["field","direction"],"type":"object","properties":{"field":{"title":"Field","minLength":1,"type":"string"},"direction":{"$ref":"#/components/schemas/SortDirections"}},"description":"https://github.com/radiantearth/stac-api-spec/tree/master/extensions/sort#sort-api-extension"},"ValidationError":{"title":"ValidationError","required":["loc","msg","type"],"type":"object","properties":{"loc":{"title":"Location","type":"array","items":{"anyOf":[{"type":"string"},{"type":"integer"}]}},"msg":{"title":"Message","type":"string"},"type":{"title":"Error Type","type":"string"}}}}}} \ No newline at end of file diff --git a/scripts/links.js b/scripts/links.js new file mode 100644 index 0000000..1b21f1a --- /dev/null +++ b/scripts/links.js @@ -0,0 +1,186 @@ +const username = 'epicman25'; +const linkList = document.querySelector('.link-list'); +const linksSection = document.querySelector('.links'); +const filterInput = document.querySelector('.filter-links'); + +const buildIcon = (link) => { + return ` + + `; +}; + +const buildUrl = (link) => { + if (link.url.includes('http')) { + return link.url; + } + if (link.url.includes('mailto')) { + return link.url; + } + return 'https://' + link.url + username; +}; + +const displayLinks = (links) => { + filterInput.classList.remove('hide'); + for (const link of links) { + let listItem = document.createElement('li'); + listItem.classList.add('link'); + listItem.innerHTML = ` + +
+

+ ${buildIcon(link)} + ${link.name} +

+

${link.description}

+
+
`; + linkList.append(listItem); + } +}; + +// dynamic search +filterInput.addEventListener('input', (e) => { + const search = e.target.value; + const links = document.querySelectorAll('.link'); + const searchLowerText = search.toLowerCase(); + + for (const link of links) { + const lowerText = link.innerText.toLowerCase(); + if (lowerText.includes(searchLowerText)) { + link.classList.remove('hide'); + } else { + link.classList.add('hide'); + } + } +}); + +const links = [ + { + name: 'Mail', + description: 'Want to talk? Write me a mail', + url: 'mailto:tejeshwarreddydevalapalli@gmail.com', + icon: 'fa-brands fa-gmail', + color: '#0088cc' + }, + { + name: 'GitHub', + description: 'My favourite place :)', + url: 'github.com/epicman25', + icon: 'fa-brands fa-github', + color: '#fff' + }, + { + name: 'Resume', + description: 'What I have done so far', + url: 'https://github.com/2kabhishek/resume/blob/main/resume.pdf', + icon: 'fa-brands fa-wpforms', + color: '#008abd' + }, + { + name: 'Twitter', + description: 'Tech, rants, philosophy, memes', + url: 'twitter.com/ep1cman25', + icon: 'fa-brands fa-twitter', + color: '#1da1f2' + }, + { + name: 'YouTube', + description: 'I make tooling videos for devs', + url: 'youtube.com/c/', + icon: 'fa-brands fa-youtube', + color: '#ff0000' + }, + { + name: 'LinkedIn', + description: 'Career updates and thoughts', + url: 'linkedin.com/in/', + icon: 'fa-brands fa-linkedin', + color: '#0077B5' + }, + { + name: 'Blog', + description: 'About things I build and learn', + url: 'https://2kabhishek.github.io/blog', + icon: 'fa-brands fa-blogger', + color: '#f57c00' + }, + { + name: 'Portfolio', + description: '/home/2kabhishek', + url: 'https://2kabhishek.github.io', + icon: 'fa-brands fa-fort-awesome', + color: '#1688f0' + }, + { + name: 'Projects', + description: 'All my projects!', + url: 'https://2kabhishek.github.io/projects', + icon: 'fa-brands fa-product-hunt', + color: '#da552f' + }, + { + name: 'Instagram', + description: 'Glimpse of my life and journey', + url: 'https://instagram.com/iam2kabhishek', + icon: 'fa-brands fa-instagram', + color: '#e1306c' + }, + { + name: 'Reddit', + description: 'Lurk mostly, sometimes I post', + url: 'reddit.com/user/', + icon: 'fa-brands fa-reddit', + color: '#ff4500' + }, + { + name: 'Dev', + description: 'Where I connect with Devs', + url: 'dev.to/', + icon: 'fa-brands fa-dev', + color: '#ccc' + }, + { + name: 'HackerRank', + description: 'For problem solving skills', + url: 'hackerrank.com/', + icon: 'fa-brands fa-hackerrank', + color: '#1ba94c' + }, + { + name: 'Exercism', + description: 'For learning new languages', + url: 'exercism.org/profiles/', + icon: 'fa-brands fa-font-awesome', + color: '#1b51d2' + }, + { + name: 'freeCodeCamp', + description: 'Where I started web dev', + url: 'freecodecamp.org/', + icon: 'fa-brands fa-free-code-camp', + color: '#006400' + }, + { + name: 'Twitch', + description: 'I stream my side projects!', + url: 'twitch.tv/', + icon: 'fa-brands fa-twitch', + color: '#6441a5' + }, + { + name: 'Leetcode', + description: 'More problem solving', + url: 'leetcode.com/', + icon: 'fa-brands fa-black-tie', + color: '#e08b32' + }, + { + name: 'Codepen', + description: 'For trying out design ideas', + url: 'codepen.io/', + icon: 'fa-brands fa-codepen', + color: '#888' + } +]; + +displayLinks(links); \ No newline at end of file diff --git a/scripts/projects.js b/scripts/projects.js index a60f522..a8dc677 100644 --- a/scripts/projects.js +++ b/scripts/projects.js @@ -171,4 +171,143 @@ const devicons = { TypeScript: ' TypeScript', 'Vim Script': ' Vim Script', Vue: ' Vue', -}; \ No newline at end of file +}; + + +// const username = 'epicman25'; +const linkList = document.querySelector('.link-list'); +const linksSection = document.querySelector('.links'); +const linksfilterInput = document.querySelector('.filter-links'); + +const buildIcon = (link) => { + return ` + + `; +}; + +const buildUrl = (link) => { + if (link.url.includes('http')) { + return link.url; + } + if (link.url.includes('mailto')) { + return link.url; + } + return 'https://' + link.url; +}; + +const displayLinks = (links) => { + linksfilterInput.classList.remove('hide'); + for (const link of links) { + let listItem = document.createElement('li'); + listItem.classList.add('link'); + listItem.innerHTML = ` + +
+

+ ${buildIcon(link)} + ${link.name} +

+

${link.description}

+
+
`; + linkList.append(listItem); + } +}; + +// dynamic search +linksfilterInput.addEventListener('input', (e) => { + const search = e.target.value; + const links = document.querySelectorAll('.link'); + const searchLowerText = search.toLowerCase(); + + for (const link of links) { + const lowerText = link.innerText.toLowerCase(); + if (lowerText.includes(searchLowerText)) { + link.classList.remove('hide'); + } else { + link.classList.add('hide'); + } + } +}); + +const links = [ + { + name: 'Mail', + description: 'Want to talk? Write me a mail', + url: 'mailto:tejeshwarreddydevalapalli@gmail.com', + icon: 'fa-brands fa-telegram', + color: '#0088cc' + }, + { + name: 'GitHub', + description: 'My favourite place :)', + url: 'github.com/epicman25', + icon: 'fa-brands fa-github', + color: '#fff' + }, + { + name: 'Resume', + description: 'What I have done so far', + url: 'https://github.com/2kabhishek/resume/blob/main/resume.pdf', + icon: 'fa-brands fa-wpforms', + color: '#008abd' + }, + { + name: 'Twitter', + description: 'Tech, rants, philosophy, memes', + url: 'twitter.com/ep1cman25', + icon: 'fa-brands fa-twitter', + color: '#1da1f2' + }, + { + name: 'LinkedIn', + description: 'Career updates and thoughts', + url: 'https://www.linkedin.com/in/devalapallitejeshwar/', + icon: 'fa-brands fa-linkedin', + color: '#0077B5' + }, + { + name: 'Portfolio', + description: 'Will come to this page again', + url: 'https://tejeshwar.dev', + icon: 'fa-brands fa-fort-awesome', + color: '#1688f0' + }, + { + name: 'Projects', + description: 'All my projects!', + url: 'https://tejeshwar.dev/#projects', + icon: 'fa-brands fa-product-hunt', + color: '#da552f' + }, + { + name: 'Reddit', + description: 'Lurk mostly, sometimes I post', + url: 'reddit.com/user/ep1cman25', + icon: 'fa-brands fa-reddit', + color: '#ff4500' + }, + { + name: 'Dev', + description: 'Where I connect with Devs', + url: 'dev.to/epicman25', + icon: 'fa-brands fa-dev', + color: '#ccc' + }, + { + name: 'Leetcode', + description: 'More problem solving', + url: 'leetcode.com/epicman25', + icon: 'fa-brands fa-black-tie', + color: '#e08b32' + }, + { + name: 'Medium', + description: 'May write blogs here', + url: 'medium.com/@epicman25', + icon: 'fa-brands fa-medium', + color: '#e08b32' + }, +]; + +displayLinks(links); \ No newline at end of file diff --git a/styles/styles.css b/styles/styles.css index 673e52d..32a6df3 100644 --- a/styles/styles.css +++ b/styles/styles.css @@ -493,6 +493,11 @@ footer { padding: 50px 15px 20px 15px; border-bottom: 1px solid #dcd9d9; } +#links { + padding: 50px 15px 20px 15px; + text-align: center; + border-bottom: 1px solid #dcd9d9; +} .projects-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); @@ -824,3 +829,172 @@ footer { } } +/* LINKS */ + +@media (prefers-color-scheme: light) { + :root { + --text: #111; + --accent: #1688f0; + --bg-main: #fff; + --bg-link: #f0f0f0; + --bg-alt: #f5f5f5; + } +} + +@media (prefers-color-scheme: dark) { + :root { + --text: #e5e5e5; + --accent: #1688f0; + --bg-main: #000; + --bg-link: #0f0f1a; + --bg-alt: #0a0a0f; + } +} + +* { + box-sizing: border-box; +} + +.links body { + display: flex; + align-items: center; + justify-content: center; + margin: 0; + font-family: 'Open Sans', sans-serif; + background-color: var(--bg-main); + color: var(--text); + font-size: 16px; +} + +.links .container { + display: flex; + justify-content: center; + flex-direction: row; + flex-wrap: wrap; + align-items: center; + width: 90%; + max-width: 1280px; +} + +.links .hide { + /* '!important' is to make sure that when we add the class using JS, it takes precendence */ + display: none !important; +} + +.links h1 { + color: var(--accent); + margin-bottom: 4px; +} + +.links small { + width: 100%; + text-align: center; + display: block; + margin-bottom: 20px; +} + +p { + margin: 0; + color: var(--text); +} + +.links h2 { + width: 100%; + text-align: center; + color: var(--text); + margin: 0; +} + +.links img { + border: 2px solid var(--accent); + box-shadow: + 0 0px 6px var(--accent), + 0 0px 6px var(--accent); + max-width: 100%; + height: auto; +} + +.links a { + color: var(--accent); + text-decoration: none; +} + +.links ul { + list-style: none; + padding: 0; +} + +.links .filter-links, +input { + background: var(--bg-alt); + width: 50%; + border-radius: 20px; + min-width: 300px; + margin-top: 1em; + padding: 1em; + margin-bottom: 1em; + border: 2px solid var(--accent); + color: var(--text); + text-align: center; +} + +.links .links { + display: flex; + flex-wrap: wrap; + justify-content: center; + background-color: var(--bg-link); + margin-top: 0; + padding: 2em; + border-bottom-left-radius: 20px; + border-bottom-right-radius: 20px; + margin-bottom: 4em; +} + +.links h3 { + margin: 4px; + width: 100%; + text-align: center; + color: var(--accent); +} + +.links .link-list { + width: 100%; + display: flex; + flex-wrap: wrap; + justify-content: center; + align-items: flex-start; +} + +.links .link-list li { + width: 100%; + min-height: 80px; + border-radius: 10px; + margin: 1em 0; + border: 1px solid var(--accent); + padding: 1em; + text-align: center; + background-color: var(--bg-alt); +} + +.links .link-list li:hover { + background-color: var(--bg-main); + box-shadow: + 0 3px 6px var(--accent), + 0 3px 6px var(--accent); +} + +@media (min-width: 700px) { + .links .link-list { + justify-content: space-between; + } + + .links .link-list li { + width: 48%; + } +} + +@media (min-width: 1200px) { + .links .link-list li { + width: 30%; + } +} \ No newline at end of file