{"id":18575602,"url":"https://github.com/jsiqbal/ibilling","last_synced_at":"2025-05-16T00:30:16.853Z","repository":{"id":237121981,"uuid":"635216525","full_name":"JsIqbal/ibilling","owner":"JsIqbal","description":null,"archived":false,"fork":false,"pushed_at":"2023-05-08T08:55:42.000Z","size":456,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-02-17T15:13:29.935Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JsIqbal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-02T08:09:50.000Z","updated_at":"2024-08-20T02:00:20.000Z","dependencies_parsed_at":"2024-04-30T03:04:00.572Z","dependency_job_id":null,"html_url":"https://github.com/JsIqbal/ibilling","commit_stats":null,"previous_names":["jsiqbal/ibilling"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JsIqbal%2Fibilling","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JsIqbal%2Fibilling/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JsIqbal%2Fibilling/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JsIqbal%2Fibilling/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JsIqbal","download_url":"https://codeload.github.com/JsIqbal/ibilling/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254447269,"owners_count":22072753,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T23:20:34.675Z","updated_at":"2025-05-16T00:30:16.592Z","avatar_url":"https://github.com/JsIqbal.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eThis is Iqbal\u003c/h1\u003e\n\u003cp  align=\"center\"\u003e Believes that Software Engineering is pure philosphy.\u003c/p\u003e\n\n[![trophy](https://github-profile-trophy.vercel.app/?username=JsIqbal\u0026column=7\u0026row=1\u0026theme=matrix\u0026margin-w=40\u0026margin-h=15)](https://github.com/ryo-ma/github-profile-trophy)\n\n-   currently working on [Middleware](https://cesomni.com/)\n\n-   currently learning **Software Engineering**\n\n-   looking to collaborate on **comming soon**\n\n-   💬 Ask me about **JavaScript, React, Node, Frontend, Backend**\n\n-   Certification on - [Node.js](https://drive.google.com/file/d/15rLCTVbZHhEe4aMGKwyXOk5b7BMhnPLM/view?usp=sharing)\n\n-   Certification on - [React.js](https://drive.google.com/file/d/1nlvSWZX1BlIFNY0g-iWLXBPuReWDle7V/view?usp=sharing)\n\n-   My Resume - [Know Iqbal More!](https://drive.google.com/file/d/1NnRKY3tRAMzZeveAqif5AWnXHAKUkoiY/view?usp=sharing)\n\n-   Reach me in **https://www.linkedin.com/in/jsiqbal/**\n\n\u003ch3 align=\"left\"\u003eConnect with me:\u003c/h3\u003e\n\u003cp align=\"left\"\u003e\n\u003ca href=\"https://linkedin.com/in/jsiqbal\" target=\"blank\"\u003e\u003cimg align=\"center\" src=\"https://raw.githubusercontent.com/rahuldkjain/github-profile-readme-generator/master/src/images/icons/Social/linked-in-alt.svg\" alt=\"jsiqbal\" height=\"30\" width=\"40\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://fb.com/javascriptiqbal\" target=\"blank\"\u003e\u003cimg align=\"center\" src=\"https://raw.githubusercontent.com/rahuldkjain/github-profile-readme-generator/master/src/images/icons/Social/facebook.svg\" alt=\"javascriptiqbal\" height=\"30\" width=\"40\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003eLanguages and Tools:\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\u003ca href=\"https://www.typescriptlang.org/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/remojansen/logo.ts/master/ts.png\" alt=\"TypeScript\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://angular.io\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://angular.io/assets/images/logos/angular/angular.svg\" alt=\"angular\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://getbootstrap.com\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/bootstrap/bootstrap-plain-wordmark.svg\" alt=\"bootstrap\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://www.cprogramming.com/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/c/c-original.svg\" alt=\"c\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://www.chartjs.org\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://www.chartjs.org/media/logo-title.svg\" alt=\"chartjs\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://www.w3schools.com/cpp/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/cplusplus/cplusplus-original.svg\" alt=\"cplusplus\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://www.w3schools.com/css/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/css3/css3-original-wordmark.svg\" alt=\"css3\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://www.docker.com/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/docker/docker-original-wordmark.svg\" alt=\"docker\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://www.figma.com/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://www.vectorlogo.zone/logos/figma/figma-icon.svg\" alt=\"figma\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://git-scm.com/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://www.vectorlogo.zone/logos/git-scm/git-scm-icon.svg\" alt=\"git\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://heroku.com\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://www.vectorlogo.zone/logos/heroku/heroku-icon.svg\" alt=\"heroku\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://www.w3.org/html/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/html5/html5-original-wordmark.svg\" alt=\"html5\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://www.adobe.com/in/products/illustrator.html\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://www.vectorlogo.zone/logos/adobe_illustrator/adobe_illustrator-icon.svg\" alt=\"illustrator\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/javascript/javascript-original.svg\" alt=\"javascript\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://www.mongodb.com/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/mongodb/mongodb-original-wordmark.svg\" alt=\"mongodb\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://www.mysql.com/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/mysql/mysql-original-wordmark.svg\" alt=\"mysql\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://nextjs.org/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://cdn.worldvectorlogo.com/logos/nextjs-2.svg\" alt=\"nextjs\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://nodejs.org\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/nodejs/nodejs-original-wordmark.svg\" alt=\"nodejs\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://www.postgresql.org\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/postgresql/postgresql-original-wordmark.svg\" alt=\"postgresql\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://postman.com\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://www.vectorlogo.zone/logos/getpostman/getpostman-icon.svg\" alt=\"postman\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://reactjs.org/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/react/react-original-wordmark.svg\" alt=\"react\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://reactnative.dev/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://reactnative.dev/img/header_logo.svg\" alt=\"reactnative\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://redis.io\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/redis/redis-original-wordmark.svg\" alt=\"redis\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://redux.js.org\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/redux/redux-original.svg\" alt=\"redux\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://sass-lang.com\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/sass/sass-original.svg\" alt=\"sass\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://vuejs.org/\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://raw.githubusercontent.com/devicons/devicon/master/icons/vuejs/vuejs-original-wordmark.svg\" alt=\"vuejs\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003ca href=\"https://www.adobe.com/products/xd.html\" target=\"_blank\" rel=\"noreferrer\"\u003e \u003cimg src=\"https://cdn.worldvectorlogo.com/logos/adobe-xd.svg\" alt=\"xd\" width=\"40\" height=\"40\"/\u003e \u003c/a\u003e \u003c/p\u003e\n\n---\n\n## 📊 Github Stats\n\n[![Top Langs](https://github-readme-stats.vercel.app/api/top-langs/?username=JsIqbal\u0026layout=compact\u0026hide=css,html\u0026langs_count=10\u0026theme=midnight-purple\u0026cache_seconds=86400\u0026card_width=1000)](https://github.com/JsIqbal/github-readme-stats)\n\n\u003c!--  [![Iqbal's github activity graph](https://github-readme-activity-graph.cyclic.app/graph?username=JsIqbal\u0026theme=high-contrast)](https://github.com/JsIqbal/github-readme-activity-graph) --\u003e\n\n\u003c!--  \u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/JsIqbal/JsIqbal/output/github-contribution-grid-snake-dark.svg\"\u003e\n  \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/JsIqbal/JsIqbal/output/github-contribution-grid-snake.svg\"\u003e\n  \u003cimg alt=\"github contribution grid snake animation\" src=\"https://raw.githubusercontent.com/JsIqbal/JsIqbal/output/github-contribution-grid-snake.svg\"\u003e\n\u003c/picture\u003e --\u003e\n\n\n\n# Project Docs:\n\n\n# Installing Typescript\nnpm i -g typescript\n\n# Transpiling a TypeScript file to JavaScript\ntsc hello.ts\n\n# tsconfig.json configuration\n{\n    \"compilerOptions\": {\n        \"target\": \"ES2015\",\n        \"watch\": true\n    }\n}\n\n# Creating a TypeScript React app using Create React App\nnpx create-react-app counter --template typescript\n\n# Installing Axios and its TypeScript definitions\nnpm install --save axios\nnpm install --save-dev @types/axios\n\n# Deleting node_modules folder, clearing npm cache, and reinstalling packages\nDelete the node_modules folder.\nClear the npm cache by running npm cache clean --force.\nInstall the packages again by running npm install.\nRun your application again by running npm start.\n\n# SOLID principles\nSingle responsibility principle\nOpen-closed principle (open for implementation and closed for modification)\nLiskov Substitution principle\n\ninterface IsSearchInputProps extends React.InputHTMLAttributes\u003cHTMLInputElement\u003e{\n    isLarge?: boolean\n}\n\nInterface Segregation principle\n\nexport interface IProduct {\n    id: string;\n    title: string\n}\n\ninterface IProductProps {\n    product: IProduct\n}\n\n# One component should have its own interface of the particular props it uses so that all the interface properties are not imported directly.\n\nDependency Inversion principle\nOne entity should depend upon abstractions not concretions. DIP\n\n# Custom Hooks\nCustom React hooks are reusable functions that can encapsulate and abstract away some of the common and often repetitive logic in React components. Here are some scenarios where custom React hooks can be useful:\n\nState management: If you find yourself writing the same code to manage state in multiple components, you can create a custom hook to handle that logic for you. For example, you can create a hook to manage form state or to handle API calls.\n\nHandling side effects: If you have code that handles side effects like fetching data from an API or interacting with the browser's local storage, you can create a custom hook to handle that logic for you.\n\nAbstracting complex logic: If you have complex logic that you need to reuse across multiple components, you can create a custom hook to encapsulate that logic and make it more reusable.\n\nImproving readability: Custom hooks can improve the readability of your code by abstracting away complex logic and making your components more focused on rendering UI.\n\n# Here are some reasons why you should use custom React hooks:\n\nReusability: Custom hooks make it easy to reuse logic across different components, reducing duplication and making your code more modular.\n\nAbstraction: Custom hooks allow you to abstract away complex logic and make your components more focused on rendering UI.\n\nSimplification: Custom hooks simplify your code by removing the need for repetitive code and providing a centralized place to manage state and side effects.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsiqbal%2Fibilling","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsiqbal%2Fibilling","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsiqbal%2Fibilling/lists"}