├── client
├── css
│ ├── scss
│ │ └── style.scss
│ ├── pages
│ │ ├── style.css
│ │ ├── issue.css
│ │ ├── error.css
│ │ └── library.css
│ └── components
│ │ ├── footer.css
│ │ ├── loader.css
│ │ ├── settings.css
│ │ └── header.css
├── img
│ ├── logo.png
│ ├── bg_glass.jpg
│ ├── bg_glass.png
│ ├── favicon.ico
│ ├── text_portrait.svg
│ ├── text_landscape.svg
│ └── lang
│ │ ├── icon6.svg
│ │ ├── icon5.svg
│ │ ├── icon4.svg
│ │ ├── icon8.svg
│ │ └── icon3.svg
├── fonts
│ ├── Astromax.ttf
│ ├── Spectron.otf
│ ├── Spoiled.otf
│ ├── Astromax.woff
│ ├── PerryWaters.otf
│ ├── Spectron.woff2
│ ├── PerryWaters.woff
│ └── Liber
│ │ ├── Liber-700-Bold.ttf
│ │ ├── Liber-900-Black.ttf
│ │ ├── Liber-400-Regular.ttf
│ │ ├── Liber-500-Medium.ttf
│ │ ├── Liber-300-SemiLight.ttf
│ │ ├── Liber-600-SemiBold.ttf
│ │ ├── Liber-800-ExtraBold.ttf
│ │ └── Liber-Font.css
├── assets
│ ├── Resources.ai
│ └── GitHub-Banner.png
├── js
│ ├── components
│ │ ├── secure.js
│ │ └── responsive.js
│ ├── main.js
│ ├── dots.js
│ └── libraries
│ │ ├── clipboard.min.js
│ │ └── jquery.waypoints.min.js
├── data
│ ├── fonts.data.js
│ ├── ml.data.js
│ ├── android.data.js
│ ├── api.data.js
│ ├── icon.data.js
│ └── css.data.js
├── 404.html
├── issue.html
└── src
│ ├── mlpack.html
│ ├── apipack.html
│ ├── csspack.html
│ ├── jspack.html
│ ├── iconpack.html
│ ├── fontspack.html
│ ├── imgpack.html
│ └── androidpack.html
├── .prettierrc
├── .imgbotconfig
├── .htaccess
├── .github
├── ISSUE_TEMPLATE
│ ├── bug-issue.md
│ ├── documentation-report.md
│ └── feature-request.md
└── PULL_REQUEST_TEMPLATE
│ └── pull_request_template.md
├── .vscode
└── settings.json
├── CONTRIBUTING.md
├── LICENSE
├── CODE_OF_CONDUCT.md
└── README.md
/client/css/scss/style.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/css/pages/style.css:
--------------------------------------------------------------------------------
1 | /* No CSS */
--------------------------------------------------------------------------------
/client/img/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/img/logo.png
--------------------------------------------------------------------------------
/client/img/bg_glass.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/img/bg_glass.jpg
--------------------------------------------------------------------------------
/client/img/bg_glass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/img/bg_glass.png
--------------------------------------------------------------------------------
/client/img/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/img/favicon.ico
--------------------------------------------------------------------------------
/client/fonts/Astromax.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/fonts/Astromax.ttf
--------------------------------------------------------------------------------
/client/fonts/Spectron.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/fonts/Spectron.otf
--------------------------------------------------------------------------------
/client/fonts/Spoiled.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/fonts/Spoiled.otf
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "semi": true,
3 | "printWidth": 100,
4 | "tabWidth": 4,
5 | "useTabs": true
6 | }
7 |
--------------------------------------------------------------------------------
/client/assets/Resources.ai:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/assets/Resources.ai
--------------------------------------------------------------------------------
/client/fonts/Astromax.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/fonts/Astromax.woff
--------------------------------------------------------------------------------
/client/fonts/PerryWaters.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/fonts/PerryWaters.otf
--------------------------------------------------------------------------------
/client/fonts/Spectron.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/fonts/Spectron.woff2
--------------------------------------------------------------------------------
/client/fonts/PerryWaters.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/fonts/PerryWaters.woff
--------------------------------------------------------------------------------
/client/assets/GitHub-Banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/assets/GitHub-Banner.png
--------------------------------------------------------------------------------
/client/css/pages/issue.css:
--------------------------------------------------------------------------------
1 | /* **************************** Add New Lib Form Styles **************************** */
2 |
--------------------------------------------------------------------------------
/.imgbotconfig:
--------------------------------------------------------------------------------
1 | {
2 | "ignoredFiles": [
3 | "text_landscape.svg",
4 | "text_portrait.svg"
5 | ]
6 | }
--------------------------------------------------------------------------------
/client/fonts/Liber/Liber-700-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/fonts/Liber/Liber-700-Bold.ttf
--------------------------------------------------------------------------------
/client/fonts/Liber/Liber-900-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/fonts/Liber/Liber-900-Black.ttf
--------------------------------------------------------------------------------
/client/fonts/Liber/Liber-400-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/fonts/Liber/Liber-400-Regular.ttf
--------------------------------------------------------------------------------
/client/fonts/Liber/Liber-500-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/fonts/Liber/Liber-500-Medium.ttf
--------------------------------------------------------------------------------
/client/fonts/Liber/Liber-300-SemiLight.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/fonts/Liber/Liber-300-SemiLight.ttf
--------------------------------------------------------------------------------
/client/fonts/Liber/Liber-600-SemiBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/fonts/Liber/Liber-600-SemiBold.ttf
--------------------------------------------------------------------------------
/client/fonts/Liber/Liber-800-ExtraBold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/imniladri/DevHub/HEAD/client/fonts/Liber/Liber-800-ExtraBold.ttf
--------------------------------------------------------------------------------
/.htaccess:
--------------------------------------------------------------------------------
1 | RewriteEngine on
2 | RewriteCond %{REQUEST_FILENAME} !-d
3 | RewriteCond %{REQUEST_FILENAME}\.html -f
4 | RewriteRule ^(.*)$ $1.html [NC,L]
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug-issue.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "Bug Issue \U0001F41B"
3 | about: Create a issue to help us improve
4 | title: "Bug: "
5 | labels: bug
6 | assignees: ""
7 | ---
8 |
9 | ### Describe the bug
10 |
11 | A clear and concise description of what the bug is.
12 |
13 | ### Expected behavior
14 |
15 | A clear and concise description of what you expected to happen.
16 |
17 | ### Screenshots
18 |
19 | If applicable, add screenshots to help explain your problem.
20 |
21 | ### Additional context
22 |
23 | Add any other context about the problem here.
24 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/documentation-report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "Documentation Report \U0001F4DA"
3 | about: Describe the documentation you want add.
4 | title: "Doc: "
5 | labels: documentation
6 | assignees: ""
7 | ---
8 |
9 | ### Describe the solution you'd like
10 |
11 | A clear and concise description of what you want to happen.
12 |
13 | ### Describe alternatives you've considered
14 |
15 | A clear and concise description of any alternative solutions or features you've considered.
16 |
17 | ### Additional context
18 |
19 | Add any other context or screenshots about the feature request here.
20 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "files.eol": "\n",
3 | "editor.tabSize": 4,
4 | "editor.defaultFormatter": "esbenp.prettier-vscode",
5 | "editor.bracketPairColorization.enabled": false,
6 | "editor.autoClosingBrackets": "always",
7 | "editor.detectIndentation": true,
8 | "editor.autoIndent": "full",
9 | "files.autoSave": "afterDelay",
10 | "search.exclude": {
11 | "node_modules/": true
12 | },
13 | "files.exclude": {
14 | "node_modules/": true,
15 | "build/": true,
16 | "dist/": true
17 | },
18 | "prettier.tabWidth": 4,
19 | "prettier.semi": true,
20 | "prettier.singleQuote": false,
21 | "prettier.jsxSingleQuote": false,
22 | "[css]": {
23 | "editor.defaultFormatter": "esbenp.prettier-vscode"
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature-request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: "Feature Request \U0001F680"
3 | about: Suggest an idea for this project
4 | title: "Feature: "
5 | labels: enhancement
6 | assignees: ""
7 | ---
8 |
9 | ### Is your feature request related to a problem? Please describe.
10 |
11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12 |
13 | ### Describe the solution you'd like
14 |
15 | A clear and concise description of what you want to happen.
16 |
17 | ### Describe alternatives you've considered
18 |
19 | A clear and concise description of any alternative solutions or features you've considered.
20 |
21 | ### Additional context
22 |
23 | Add any other context or screenshots about the feature request here.
24 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md:
--------------------------------------------------------------------------------
1 | ## What changes have you made?
2 |
3 | (Write your answer here.)
4 |
5 | ## Checklist
6 |
7 | Before you create this PR, confirm all the requirements listed below by checking the checkboxes [x]:
8 |
9 | - [ ] I am making a proper pull request, not spam.
10 | - [ ] I've checked the issue list before deciding what to submit.
11 | - [ ] I have checked there aren't other open Pull Requests for the same update/change
12 | - [ ] I have tested the code before submission
13 |
14 | ## Related Issues or Pull Requests
15 |
16 | Eg: I Solved Issue #_{Issue Number}_.
17 |
18 | OR
19 |
20 | Eg: I Solved Issue #_{PR Number}_.
21 |
22 | (Write your answer here.)
23 |
24 | ## Add relevant screenshot or video (if any)
25 |
26 | (Add here)
27 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contributing to [Dev Hub](https://github.com/imniladri/DevHub)
2 |
3 | [](https://github.com/imniladri/DevHub/pulls)
4 | [](https://github.com/imniladri/DevHub/issues)
5 | [](https://github.com/imniladri/DevHub/pulls)
6 | [](https://github.com/imniladri/DevHub/blob/master/LICENSE)
7 |
8 | We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:
9 |
10 | - Reporting a bug
11 | - Submitting a fix
12 | - Proposing new features
13 |
14 | ## Add Your Contributing Details Here:
15 |
16 | ### Mentor: [Niladri Mondal ](https://github.com/imniladri)
17 |
18 | ### Mentee:
19 |
20 | 1. [Your Name](https://github.com/username)
21 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 Niladri Mondal
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/client/js/components/secure.js:
--------------------------------------------------------------------------------
1 | // MY CODE/WEBSITE IS SECURED/PROTECTED (secure.js)
2 |
3 | $(document).ready(function () {
4 | // Disable CTRL/SHIFT KEY
5 | $(document).keydown(function (e) {
6 | if (
7 | e.ctrlKey &&
8 | (e.keyCode === 73 ||
9 | e.keyCode === 83 ||
10 | e.keyCode === 85 ||
11 | e.keyCode === 123)
12 | ) {
13 | swal(
14 | "Oops!",
15 | "Sorry:(, My Library is secured; Be Creative, not copycat!",
16 | "error"
17 | );
18 | return false;
19 | } else if (
20 | e.keyCode === 123 ||
21 | (e.ctrlKey && e.shiftKey && e.keyCode === 73)
22 | ) {
23 | swal(
24 | "Oops!",
25 | "Sorry:(, My Library is secured; Be Creative, not copycat!",
26 | "error"
27 | );
28 | return false;
29 | } else {
30 | return true;
31 | }
32 | });
33 |
34 | // Disable Right Click
35 | $(document).bind("contextmenu", function (e) {
36 | e.preventDefault();
37 | swal(
38 | "Oops!",
39 | "Sorry:(, My Library is secured; Be Creative, not copycat!",
40 | "error"
41 | );
42 | return false;
43 | });
44 | });
45 |
--------------------------------------------------------------------------------
/client/css/components/footer.css:
--------------------------------------------------------------------------------
1 | /* **************************** Footer Section Styles **************************** */
2 |
3 | footer {
4 | margin: 10rem auto 0;
5 | padding: 4rem 10rem 2rem;
6 | position: relative;
7 | display: flex;
8 | justify-content: space-between;
9 | align-items: center;
10 |
11 | /* Glass Effect */
12 | background: rgba(255, 255, 255, 0.1);
13 | box-shadow: 0 -5px 20px rgba(0, 0, 0, 0.2), inset 0px 0px 20px 10px rgba(255, 255, 255, 0.2);
14 | border-top: 4px solid rgba(255, 255, 255, 0.7);
15 | backdrop-filter: blur(10px);
16 | -webkit-backdrop-filter: blur(10px);
17 | }
18 |
19 | footer h2 {
20 | font-size: 2rem;
21 | font-family: var(--textfont);
22 | color: var(--lightwhite);
23 | letter-spacing: 0.8px;
24 | line-height: 1.6;
25 | }
26 |
27 | footer h2 a {
28 | font-family: "Astromax", sans-serif;
29 | color: var(--primarywhite);
30 | text-decoration: none !important;
31 | transition: all 0.2s ease-in-out;
32 | }
33 |
34 | footer h2 a:hover {
35 | color: var(--primarycolor);
36 | }
37 |
38 | footer p {
39 | font-size: 1.8rem;
40 | font-weight: 500;
41 | font-family: "Liber", sans-serif;
42 | color: var(--lightwhite);
43 | letter-spacing: 0.4px;
44 | line-height: 1.6;
45 | }
46 |
47 | @media (max-width: 992px) {
48 | footer {
49 | padding: 4rem 4rem 2rem;
50 | align-items: flex-start;
51 | flex-direction: column;
52 | }
53 | }
54 |
55 | /* **************************** Styles End **************************** */
56 |
--------------------------------------------------------------------------------
/client/fonts/Liber/Liber-Font.css:
--------------------------------------------------------------------------------
1 | /* Liber Font Faces (300, 400, 500, 600, 700, 800, 900) */
2 |
3 | @font-face {
4 | font-family: "Liber";
5 | src: url(../../fonts/Liber/Liber-300-SemiLight.ttf) format("truetype");
6 | font-weight: 300;
7 | font-style: normal;
8 | text-rendering: optimizeLegibility;
9 | }
10 |
11 | @font-face {
12 | font-family: "Liber";
13 | src: url(../../fonts/Liber/Liber-400-Regular.ttf) format("truetype");
14 | font-weight: 400;
15 | font-style: normal;
16 | text-rendering: optimizeLegibility;
17 | }
18 |
19 | @font-face {
20 | font-family: "Liber";
21 | src: url(../../fonts/Liber/Liber-500-Medium.ttf) format("truetype");
22 | font-weight: 500;
23 | font-style: normal;
24 | text-rendering: optimizeLegibility;
25 | }
26 |
27 | @font-face {
28 | font-family: "Liber";
29 | src: url(../../fonts/Liber/Liber-600-SemiBold.ttf) format("truetype");
30 | font-weight: 600;
31 | font-style: normal;
32 | text-rendering: optimizeLegibility;
33 | }
34 |
35 | @font-face {
36 | font-family: "Liber";
37 | src: url(../../fonts/Liber/Liber-700-Bold.ttf) format("truetype");
38 | font-weight: 700;
39 | font-style: normal;
40 | text-rendering: optimizeLegibility;
41 | }
42 |
43 | @font-face {
44 | font-family: "Liber";
45 | src: url(../../fonts/Liber/Liber-800-ExtraBold.ttf) format("truetype");
46 | font-weight: 800;
47 | font-style: normal;
48 | text-rendering: optimizeLegibility;
49 | }
50 |
51 | @font-face {
52 | font-family: "Liber";
53 | src: url(../../fonts/Liber/Liber-900-Black.ttf) format("truetype");
54 | font-weight: 900;
55 | font-style: normal;
56 | text-rendering: optimizeLegibility;
57 | }
58 |
--------------------------------------------------------------------------------
/client/js/main.js:
--------------------------------------------------------------------------------
1 | // Loader Event ************************************************************
2 |
3 | $(window).on("load", () => {
4 | $("#preloader").css({
5 | opacity: "0",
6 | visibility: "hidden",
7 | transitionDelay: "0.6s",
8 | });
9 | $(".loader").css({
10 | opacity: "0",
11 | transitionDelay: "0.3s",
12 | });
13 | $("main").css({
14 | opacity: "1",
15 | visibility: "visible",
16 | transitionDelay: "0.8s",
17 | });
18 |
19 | setTimeout(() => {
20 | $(".loaded").addClass("active");
21 | }, 1000);
22 | });
23 |
24 | // Menu Btn Click **********************************************************
25 |
26 | $(".menu_icon").click(function () {
27 | $(".menu_candy").toggleClass("menu_active");
28 | $("#backdrop_bg").toggleClass("backdrop_active");
29 | });
30 | $(".nav_items .nav_links").click(function () {
31 | $(".menu_candy").removeClass("menu_active");
32 | $("#backdrop_bg").removeClass("backdrop_active");
33 | });
34 |
35 | // Swal Alert Msg **********************************************************
36 |
37 | $("a[href='javascript:void(0)']").click(() => {
38 | swal("Sorry", "We are working on it!");
39 | });
40 |
41 | // Search Function of Library **********************************************
42 |
43 | $("form input#search").on("keyup", function () {
44 | let value = $(this).val().toLowerCase();
45 | $("div.lib_card").filter(function () {
46 | $(this).toggle($(this).find("h2").text().toLowerCase().indexOf(value) > -1);
47 | });
48 | });
49 |
50 | // Go Back *****************************************************************
51 |
52 | $("a.btn_back").click(() => {
53 | window.history.back();
54 | });
55 |
56 | // Source Change of Text Object SVG ****************************************
57 |
58 | $(window).ready(function () {
59 | if (screen.width < 992) {
60 | $("object.text").attr("data", "./img/text_portrait.svg");
61 | } else {
62 | $("object.text").attr("data", "./img/text_landscape.svg");
63 | }
64 | });
65 |
--------------------------------------------------------------------------------
/client/js/dots.js:
--------------------------------------------------------------------------------
1 | /*
2 | particlesJS.load('particles-js', 'particles.json', function() {
3 | console.log('particles.js loaded - callback');
4 | });
5 | */
6 |
7 | /* Particles/Dots for Index Page Animation */
8 |
9 | // Dots (Index Page) || Id: "dots-js"
10 |
11 | particlesJS(
12 | "dots-js",
13 |
14 | {
15 | particles: {
16 | number: {
17 | value: 30,
18 | density: {
19 | enable: true,
20 | value_area: 600,
21 | },
22 | },
23 | color: {
24 | value: "#E8FFFF",
25 | },
26 | shape: {
27 | type: "circle",
28 | stroke: {
29 | width: 0,
30 | color: "#000000",
31 | },
32 | polygon: {
33 | nb_sides: 6,
34 | },
35 | image: {
36 | src: "img/logo.svg",
37 | width: 50,
38 | height: 50,
39 | },
40 | },
41 | opacity: {
42 | value: 1,
43 | random: true,
44 | anim: {
45 | enable: true,
46 | speed: 1,
47 | opacity_min: 0.4,
48 | sync: false,
49 | },
50 | },
51 | size: {
52 | value: 8,
53 | random: true,
54 | anim: {
55 | enable: true,
56 | speed: 10,
57 | size_min: 0.1,
58 | sync: false,
59 | },
60 | },
61 | line_linked: {
62 | enable: false,
63 | distance: 150,
64 | color: "#ffffff",
65 | opacity: 0.4,
66 | width: 1,
67 | },
68 | move: {
69 | enable: true,
70 | speed: 8,
71 | direction: "top",
72 | random: true,
73 | straight: false,
74 | out_mode: "out",
75 | attract: {
76 | enable: false,
77 | rotateX: 600,
78 | rotateY: 1200,
79 | },
80 | },
81 | },
82 | interactivity: {
83 | detect_on: "canvas",
84 | events: {
85 | onhover: {
86 | enable: false,
87 | mode: "repulse",
88 | },
89 | onclick: {
90 | enable: false,
91 | mode: "push",
92 | },
93 | resize: true,
94 | },
95 | modes: {
96 | grab: {
97 | distance: 400,
98 | line_linked: {
99 | opacity: 1,
100 | },
101 | },
102 | bubble: {
103 | distance: 400,
104 | size: 40,
105 | duration: 2,
106 | opacity: 8,
107 | speed: 3,
108 | },
109 | repulse: {
110 | distance: 200,
111 | },
112 | push: {
113 | particles_nb: 4,
114 | },
115 | remove: {
116 | particles_nb: 2,
117 | },
118 | },
119 | },
120 | retina_detect: true,
121 | config_demo: {
122 | hide_card: false,
123 | background_color: "#fafafa",
124 | background_image: "",
125 | background_position: "50% 50%",
126 | background_repeat: "no-repeat",
127 | background_size: "cover",
128 | },
129 | }
130 | );
131 |
--------------------------------------------------------------------------------
/client/js/components/responsive.js:
--------------------------------------------------------------------------------
1 | /*====================================================================================================================*/
2 |
3 | // Site Responsive JS : If not responsive apply this js file to the site.
4 | /* */
5 |
6 | // Responsive Jquery Function
7 |
8 | // Browser Load/Ready
9 | $(window).ready(function () {
10 | var width = window.outerWidth;
11 |
12 | if ($(this).width() < 992) {
13 | swal({
14 | title: "Opps! Sorry:(",
15 | text:
16 | "My Site is yet not Responsive for your Display of " +
17 | width +
18 | "PX.",
19 | icon: "info",
20 | buttons: "Alright!",
21 | }).then((e) => {
22 | swal({
23 | title: "Phew!",
24 | text: "Do you want to close this Window/Site?",
25 | icon: "warning",
26 | buttons: ["Not Now", "Close"],
27 | }).then((close) => {
28 | if (close) {
29 | window.close();
30 | } else {
31 | swal(
32 | "Okay, You can manually close it by yourself! \n Thank You for Visiting (:",
33 | { button: "Okay!" }
34 | );
35 | }
36 | });
37 | });
38 |
39 | $("main").hide();
40 | } else {
41 | $("main").show();
42 | }
43 | });
44 |
45 | // Browser Resize
46 | $(window).resize(function () {
47 | var width = window.outerWidth;
48 |
49 | if ($(this).width() < 992) {
50 | swal({
51 | title: "Opps! Sorry:(",
52 | text:
53 | "My Site is yet not Responsive for your Display of " +
54 | width +
55 | "PX.",
56 | icon: "info",
57 | buttons: "Alright!",
58 | }).then((e) => {
59 | swal({
60 | title: "Phew!",
61 | text: "Do you want to close this Window/Site?",
62 | icon: "warning",
63 | buttons: ["Not Now", "Close"],
64 | }).then((close) => {
65 | if (close) {
66 | window.close();
67 | } else {
68 | swal(
69 | "Okay, You can manually close it by yourself! \n Thank You for Visiting (:",
70 | { button: "Okay!" }
71 | );
72 | }
73 | });
74 | });
75 |
76 | $("main").hide();
77 | } else {
78 | $("main").show();
79 | }
80 | });
81 |
82 | /*====================================================================================================================*/
83 |
--------------------------------------------------------------------------------
/client/data/fonts.data.js:
--------------------------------------------------------------------------------
1 | /* ********************************************************** */
2 | // All Fonts Libraries Data Object
3 | /* ********************************************************** */
4 |
5 | let fontsData = [
6 | {
7 | id: 1,
8 | lib_name: "Google Fonts",
9 | lib_details:
10 | "Google Fonts makes it easy to bring personality and performance to your websites and products.",
11 | lib_link: "https://fonts.google.com/",
12 | },
13 | {
14 | id: 2,
15 | lib_name: "Font Space",
16 | lib_details:
17 | "Free downloads of legally licensed fonts that are perfect for your design projects.",
18 | lib_link: "https://www.fontspace.com/",
19 | },
20 | {
21 | id: 3,
22 | lib_name: "Freepik Fonts",
23 | lib_details:
24 | "Discover our fonts and, include them in your projects and make incredible designs!",
25 | lib_link: "https://www.freepik.com/fonts",
26 | },
27 | {
28 | id: 4,
29 | lib_name: "Font Fabric",
30 | lib_details:
31 | "A digital type foundry crafting retail fonts and custom typography for various brands.",
32 | lib_link: "https://www.fontfabric.com/",
33 | },
34 | {
35 | id: 5,
36 | lib_name: "Envato Fonts",
37 | lib_details: "Stunning Premium Fonts for every project.",
38 | lib_link: "https://elements.envato.com/fonts",
39 | },
40 | {
41 | id: 6,
42 | lib_name: "Font Bundles",
43 | lib_details: "The Go-to Marketplace for Premium & Affordable Font Resources.",
44 | lib_link: "https://fontbundles.net/",
45 | },
46 | {
47 | id: 7,
48 | lib_name: "Dafont",
49 | lib_details: "Free fonts for everyone to use, get it here.",
50 | lib_link: "https://www.dafont.com/",
51 | },
52 | {
53 | id: 8,
54 | lib_name: "Font Squirrel",
55 | lib_details: "Free fonts for everyone to use, get it here.",
56 | lib_link: "https://www.fontsquirrel.com/",
57 | },
58 | {
59 | id: 9,
60 | lib_name: "Urban Fonts",
61 | lib_details: "Free fonts for everyone to use, get it here.",
62 | lib_link: "https://www.urbanfonts.com/",
63 | },
64 | {
65 | id: 10,
66 | lib_name: "Cufon Fonts",
67 | lib_details: "Free fonts for everyone to use, get it here.",
68 | lib_link: "https://www.cufonfonts.com/",
69 | },
70 | ];
71 |
72 | /* ********************************************************** */
73 | // All Fonts Libraries Preview Mapping
74 | /* ********************************************************** */
75 |
76 | let fontsLibrary = document.querySelector(".libraries");
77 |
78 | Object.values(fontsData).map((val) => {
79 | fontsLibrary.innerHTML += `
80 |
81 |
88 | `;
89 | });
90 |
--------------------------------------------------------------------------------
/client/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Page Not Found
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
4
76 |
77 |
4
78 |
79 |
Page Not Found
80 |
The page you are looking for is unavailable.
81 |
Go Back!
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, sex characteristics, gender identity and expression,
9 | level of experience, education, socio-economic status, nationality, personal
10 | appearance, race, religion, or sexual identity and orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | - Using welcoming and inclusive language
18 | - Being respectful of differing viewpoints and experiences
19 | - Gracefully accepting constructive criticism
20 | - Focusing on what is best for the community
21 | - Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | - The use of sexualized language or imagery and unwelcome sexual attention or
26 | advances
27 | - Trolling, insulting/derogatory comments, and personal or political attacks
28 | - Public or private harassment
29 | - Publishing others' private information, such as a physical or electronic
30 | address, without explicit permission
31 | - Other conduct which could reasonably be considered inappropriate in a
32 | professional setting
33 |
34 | ## Our Responsibilities
35 |
36 | Project maintainer is responsible for clarifying the standards of acceptable
37 | behavior and are expected to take appropriate and fair corrective action in
38 | response to any instances of unacceptable behavior.
39 |
40 | Project maintainer have the right and responsibility to remove, edit, or
41 | reject comments, commits, code, wiki edits, issues, and other contributions
42 | that are not aligned to this Code of Conduct, or to ban temporarily or
43 | permanently any contributor for other behaviors that they deem inappropriate,
44 | threatening, offensive, or harmful.
45 |
46 | ## Scope
47 |
48 | This Code of Conduct applies both within project spaces and in public spaces
49 | when an individual is representing the project or its community. Examples of
50 | representing a project or community include using an official project e-mail
51 | address, posting via an official social media account, or acting as an appointed
52 | representative at an online or offline event. Representation of a project may be
53 | further defined and clarified by project maintainers.
54 |
55 | ## Enforcement
56 |
57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
58 | reported by contacting the project lead at imniladrimondal@gmail.com. All
59 | complaints will be reviewed and investigated and will result in a response that
60 | is deemed necessary and appropriate to the circumstances. The project team is
61 | obligated to maintain confidentiality with regard to the reporter of an incident.
62 | Further details of specific enforcement policies may be posted separately.
63 |
64 | Project contributors who do not follow or enforce the Code of Conduct in good
65 | faith may face temporary or permanent repercussions as determined by other
66 | members of the project's leadership.
67 |
68 | For answers to common questions about this code of conduct, see
69 | https://www.contributor-covenant.org/faq
70 |
71 | [](https://github.com/imniladri/Devhub/blob/master/LICENSE.txt)
72 |
--------------------------------------------------------------------------------
/client/issue.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Add New Lib | Dev Hub
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
86 |
87 |
88 |
89 |
92 |
93 |
94 |
95 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
--------------------------------------------------------------------------------
/client/css/pages/error.css:
--------------------------------------------------------------------------------
1 | /* *********************** Error 404 Page Styles *********************** */
2 |
3 | section#error_404 {
4 | position: relative;
5 | width: 100%;
6 | height: 100vh;
7 | display: flex;
8 | justify-content: center;
9 | align-items: center;
10 | }
11 |
12 | div#dots-js {
13 | position: fixed;
14 | top: 0;
15 | left: 0;
16 | width: 100%;
17 | height: 100%;
18 | z-index: -1;
19 | }
20 |
21 | div.error_404 {
22 | margin: 4rem auto;
23 | padding: 6rem 2rem;
24 | position: relative;
25 | width: 80%;
26 | height: 85vh;
27 | display: flex;
28 | justify-content: center;
29 | align-items: center;
30 | flex-direction: column;
31 |
32 | /* Glass Effect */
33 | border-radius: 16px;
34 | background: rgba(255, 255, 255, 0.1);
35 | box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1), inset 0px 0px 40px 20px rgba(255, 255, 255, 0.2);
36 | border: 2px solid rgba(255, 255, 255, 0.7);
37 | backdrop-filter: blur(10px);
38 | -webkit-backdrop-filter: blur(10px);
39 | }
40 |
41 | div.error_404 .text {
42 | margin: auto;
43 | margin-bottom: -5rem;
44 | width: 100%;
45 | height: auto;
46 | display: flex;
47 | justify-content: center;
48 | align-items: center;
49 | }
50 |
51 | div.error_404 .text img {
52 | margin: 0 1rem;
53 | width: 22rem;
54 | height: auto;
55 | transform: translateY(-2rem);
56 | }
57 |
58 | div.error_404 .text span {
59 | margin: 0 1rem;
60 | font-size: 20rem;
61 | font-weight: 600;
62 | font-family: "Spectron", sans-serif;
63 | color: var(--primarywhite);
64 | text-align: center;
65 | }
66 |
67 | div.error_404 h2 {
68 | margin: 1rem auto;
69 | font-size: 8rem;
70 | font-weight: 400;
71 | font-family: "Spoiled", sans-serif;
72 | color: var(--primarywhite);
73 | letter-spacing: 3px;
74 | text-align: center;
75 | }
76 |
77 | div.error_404 p {
78 | margin: 1rem auto;
79 | font-size: 2rem;
80 | font-weight: 400;
81 | font-family: "Astromax", sans-serif;
82 | color: var(--lightwhite);
83 | letter-spacing: 3px;
84 | text-align: center;
85 | }
86 |
87 | div.error_404 a {
88 | position: relative;
89 | margin: 1.5rem auto;
90 | padding: 1.8rem 4.4rem 1.4rem;
91 | font-size: 2rem;
92 | font-weight: 700;
93 | font-family: "Liber", sans-serif;
94 | color: var(--primarywhite);
95 | border-radius: 50px;
96 | background: rgba(255, 255, 255, 0.15);
97 | box-shadow: 0 4px 20px rgb(0 0 0 / 20%), inset 0px 0px 10px 2px rgb(255 255 255 / 20%);
98 | letter-spacing: 1px;
99 | text-align: center;
100 | text-decoration: none;
101 | user-select: none;
102 | transition: all 0.1s ease-in-out;
103 | }
104 |
105 | div.error_404 a::before {
106 | content: "";
107 | position: absolute;
108 | top: 0;
109 | left: 0;
110 | width: 100%;
111 | height: 100%;
112 | border: 2.5px solid var(--primarywhite);
113 | opacity: 0.4;
114 | border-radius: 50px;
115 | transition: all 0.1s ease-in-out;
116 | }
117 |
118 | div.error_404 a:hover {
119 | background: rgba(255, 255, 255, 0.2);
120 | }
121 |
122 | div.error_404 a:hover:before {
123 | opacity: 0.8;
124 | }
125 |
126 | /* ************************* Responsive Media ************************* */
127 |
128 | @media (max-width: 992px) {
129 | div.error_404 {
130 | width: 90%;
131 | }
132 | div.error_404 .text img {
133 | width: 20rem;
134 | }
135 | div.error_404 .text span {
136 | font-size: 20rem;
137 | }
138 | div.error_404 h2 {
139 | font-size: 8rem;
140 | }
141 | div.error_404 p {
142 | font-size: 2rem;
143 | }
144 | div.error_404 a {
145 | padding: 1.4rem 2.4rem 1rem;
146 | }
147 | }
148 |
149 | @media (max-width: 768px) {
150 | div.error_404 .text img {
151 | width: 18rem;
152 | }
153 | div.error_404 .text span {
154 | font-size: 18rem;
155 | }
156 | div.error_404 h2 {
157 | font-size: 6rem;
158 | }
159 | }
160 |
161 | @media (max-width: 572px) {
162 | div.error_404 {
163 | padding: 14rem 2rem;
164 | }
165 | div.error_404 .text {
166 | margin-bottom: -3rem;
167 | }
168 | div.error_404 .text img {
169 | width: 12rem;
170 | }
171 | div.error_404 .text span {
172 | font-size: 12rem;
173 | margin: 0;
174 | }
175 | div.error_404 h2 {
176 | font-size: 4rem;
177 | }
178 | div.error_404 p {
179 | font-size: 1.7rem;
180 | }
181 | }
182 |
183 | /* **************************** Styles End **************************** */
184 |
--------------------------------------------------------------------------------
/client/css/components/loader.css:
--------------------------------------------------------------------------------
1 | /*==================================== Loader =====================================*/
2 |
3 | #preloader {
4 | position: fixed;
5 | top: 0;
6 | left: 0;
7 | width: 100%;
8 | height: 100vh;
9 | display: flex;
10 | justify-content: center;
11 | align-items: center;
12 | backdrop-filter: blur(40px);
13 | -webkit-backdrop-filter: blur(40px);
14 | opacity: 1;
15 | visibility: visible;
16 | z-index: 9999;
17 | transition: all 0.6s ease-in-out;
18 | }
19 |
20 | /* **************** Loader Container **************** */
21 |
22 | .loader {
23 | position: relative;
24 | width: 30rem;
25 | height: 30rem;
26 | display: flex;
27 | justify-content: center;
28 | align-items: center;
29 | opacity: 1;
30 | transform: rotate(45deg);
31 | transition: all 0.3s ease-in-out;
32 |
33 | /* Glass Effect */
34 | border-radius: 20px;
35 | background: rgba(255, 255, 255, 0.15);
36 | box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1), inset 0px 0px 40px 10px rgba(255, 255, 255, 0.1);
37 | border: 2px solid rgba(255, 255, 255, 0.6);
38 | backdrop-filter: blur(10px);
39 | -webkit-backdrop-filter: blur(10px);
40 | }
41 |
42 | @media (max-width: 768px) {
43 | .loader {
44 | width: 25rem;
45 | height: 25rem;
46 | }
47 | }
48 |
49 | @media (max-width: 472px) {
50 | .loader {
51 | width: 20rem;
52 | height: 20rem;
53 | }
54 | }
55 |
56 | /* **************** Loader Dot Frames **************** */
57 |
58 | .loader .dot-1 {
59 | position: absolute;
60 | top: 50%;
61 | left: 50%;
62 | transform: translate(-50%, -50%);
63 | z-index: 3;
64 | width: 40px;
65 | height: 40px;
66 | background: var(--primarywhite);
67 | border-radius: 50%;
68 | animation-fill-mode: both;
69 | animation: dot-1 2s cubic-bezier(0.21, 0.98, 0.6, 0.99) infinite alternate;
70 | }
71 |
72 | .loader .dot-2 {
73 | position: absolute;
74 | top: 50%;
75 | left: 50%;
76 | transform: translate(-50%, -50%);
77 | z-index: 2;
78 | width: 70px;
79 | height: 70px;
80 | background: transparent;
81 | border-radius: 50%;
82 | animation-fill-mode: both;
83 | animation: dot-2 2s cubic-bezier(0.21, 0.98, 0.6, 0.99) infinite alternate;
84 | }
85 |
86 | .loader .dot-3 {
87 | position: absolute;
88 | top: 50%;
89 | left: 50%;
90 | transform: translate(-50%, -50%);
91 | z-index: 1;
92 | width: 110px;
93 | height: 110px;
94 | background: rgba(255, 255, 255, 0.05);
95 | border-radius: 50%;
96 | animation-fill-mode: both;
97 | animation: dot-3 2s cubic-bezier(0.21, 0.98, 0.6, 0.99) infinite alternate;
98 | }
99 |
100 | /* **************** Loader Dot Animation **************** */
101 |
102 | @keyframes dot-1 {
103 | 0%,
104 | 70% {
105 | transform: translate(-50%, -50%) scale(0);
106 | box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
107 | }
108 |
109 | 100% {
110 | transform: translate(-50%, -50%) scale(1);
111 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
112 | }
113 | }
114 |
115 | @keyframes dot-2 {
116 | 0%,
117 | 40% {
118 | transform: translate(-50%, -50%) scale(0);
119 | box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
120 | }
121 |
122 | 100% {
123 | transform: translate(-50%, -50%) scale(1);
124 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
125 | }
126 | }
127 |
128 | @keyframes dot-3 {
129 | 0%,
130 | 10% {
131 | transform: translate(-50%, -50%) scale(0);
132 | box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
133 | }
134 |
135 | 100% {
136 | transform: translate(-50%, -50%) scale(1);
137 | box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
138 | }
139 | }
140 |
141 | /* **************** Loader Text **************** */
142 |
143 | .loader h2 {
144 | font-size: 4rem;
145 | font-weight: 600;
146 | font-family: "Astromax", sans-serif;
147 | color: var(--primarywhite);
148 | letter-spacing: 2px;
149 | text-align: center;
150 | transform: translate(8rem, 8rem) rotate(-45deg);
151 | background: linear-gradient(
152 | 90deg,
153 | rgba(255, 255, 255, 0.6) 30%,
154 | rgba(255, 255, 255, 1) 50%,
155 | rgba(255, 255, 255, 0.6) 70%
156 | );
157 | background-size: 200%;
158 | background-clip: text;
159 | -webkit-background-clip: text;
160 | -webkit-text-fill-color: transparent;
161 | animation: shine 2s linear infinite;
162 | }
163 |
164 | @keyframes shine {
165 | 0% {
166 | background-position: 150%;
167 | }
168 | 100% {
169 | background-position: -50%;
170 | }
171 | }
172 |
--------------------------------------------------------------------------------
/client/img/text_portrait.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
75 |
76 |
77 |
86 |
87 | Dev Hub
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
--------------------------------------------------------------------------------
/client/img/text_landscape.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
75 |
76 |
77 |
86 |
87 | Dev Hub
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
--------------------------------------------------------------------------------
/client/img/lang/icon6.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
15 |
16 |
17 | Dev Hub: A Awesome Hub for all Developers
18 |
19 |
20 |
21 |
26 |
27 |
28 |
29 | ## About The Project
30 |
31 | Dev Hub is a coolest hub for all developers to get any kind of libraries & packages. And it's very easy and fast way to get them all in one place. We will include more libraries for each section & update soon. Also we are working on some cool code snippets that are used daily on live projects.
32 |
33 | Libraries for CSS, JS, ICON, IMAGES, ANDROID, ML, API etc.
34 |
35 | Note: `Next Js` version coming soon with more features, under development.
36 |
37 |
38 |
39 | ## Built With
40 |
41 | All Tech Stacks that are using in this project:
42 |
43 | - HTML5
44 | - CSS3
45 | - Javascript | Jquery
46 | - SVG
47 |
48 | Other tools you need know:
49 |
50 | - Figma
51 | - Illustrator
52 |
53 | Here it seems that the main moto is to make the frontend awesome.
54 |
55 |
56 |
57 | ## Folder Structure
58 |
59 | ```
60 | ├── client/
61 | ├── assets/ Other Resources Files
62 | ├── css/
63 | ├── components/ Css Component Files (header, footer, settings, loader)
64 | ├── libraries/ Css External Library Files
65 | ├── pages/ Css Main Site Page's Files
66 | ├── scss/ Sass Files
67 | ├── data/ Page Data Mapping Files [*.data.js]
68 | ├── fonts/ External Fonts
69 | ├── img/ All Images Files
70 | ├── js/
71 | ├── components/ Js Component Files (secure, responsive)
72 | ├── libraries/ Js External Library Files
73 | ├── src/ All Site Pages (css, js, img, icon)
74 | ├── index.html Main Home Page
75 | ├── (Other Pages) Extra Pages (404, new)
76 | ```
77 |
78 |
79 |
80 | ### Before You Start
81 |
82 | - Try to maintain the file format & folder structure.
83 | - Try to maintain proper file names.
84 | - Don't use capital or spaces for files names instead use `_` or `-`.
85 |
86 |
87 |
88 | ## Getting Started
89 |
90 | Please follow these simple steps to start working:
91 |
92 | 1. If you want to work on issue then comment, then if you get assigned.
93 | 2. Fork this Repo and clone your forked copy of the project.
94 | 3. Navigate to your project directory and open it in your code editor.
95 | 4. Always take a pull from the upstream repository to your main branch to keep it at par with the main project (updated repository).
96 | 5. Create a new branch and name it as according to the issue.
97 | 6. Start making your changes & after making changes.
98 | 7. Open a Pull Request with a name of the issue and describe about your changes with reasons.
99 |
100 | ### Add Your Name
101 |
102 | Once your PR got merged, do not forget to add your name in `CONTRIBUTING` file. Further instructions are mentioned there.
103 |
104 |
105 |
106 | ## Roadmap
107 |
108 | See the [open issues](https://github.com/imniladri/DevHub/issues) for a full list of proposed features (and known issues).
109 |
110 | - [ ] Documentation at some places.
111 | - [ ] Addition of Some Cool Styles.
112 | - [ ] Addition of More Useful Libraries.
113 | - [ ] Give Chance to user to add their Library.
114 | - [ ] More Features for More Interactivity in Site.
115 | - [ ] Developing in `Next Js` with more features.
116 |
117 |
118 |
119 | ## Contact
120 |
121 | ### [Niladri Mondal](https://imniladri.in/)
122 |
123 | [](https://join.skype.com/invite/x4ZrtKrM5uyv)
124 | [](mailto:imniladrimondal@gmail.com)
125 | [](https://github.com/imniladri/DevHub)
126 |
127 |
128 |
129 | [contributors-shield]: https://img.shields.io/github/contributors/imniladri/DevHub.svg?style=for-the-badge&color
130 | [contributors-url]: https://github.com/imniladri/DevHub/graphs/contributors
131 | [forks-shield]: https://img.shields.io/github/forks/imniladri/DevHub.svg?style=for-the-badge&color=FFE400
132 | [forks-url]: https://github.com/imniladri/DevHub/network/members
133 | [stars-shield]: https://img.shields.io/github/stars/imniladri/DevHub.svg?style=for-the-badge&color=FFE400
134 | [stars-url]: https://github.com/imniladri/DevHub/stargazers
135 | [issues-shield]: https://img.shields.io/github/issues/imniladri/DevHub.svg?style=for-the-badge&color
136 | [issues-url]: https://github.com/imniladri/DevHub/issues
137 | [license-shield]: https://img.shields.io/github/license/imniladri/DevHub.svg?style=for-the-badge&color=3DB2FF
138 | [license-url]: https://github.com/imniladri/DevHub/blob/master/LICENSE.txt
139 | [skype-shield]: https://img.shields.io/badge/-Skype-white.svg?style=for-the-badge&logo=skype&logoColor=fff&color=00AFF0
140 | [skype-url]: https://join.skype.com/invite/x4ZrtKrM5uyv
141 |
--------------------------------------------------------------------------------
/client/src/mlpack.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | ML | Dev Hub
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
--------------------------------------------------------------------------------
/client/src/apipack.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | API | Dev Hub
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
--------------------------------------------------------------------------------
/client/src/csspack.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | CSS | Dev Hub
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
--------------------------------------------------------------------------------
/client/src/jspack.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Javascript | Dev Hub
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
--------------------------------------------------------------------------------
/client/src/iconpack.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Icons | Dev Hub
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
--------------------------------------------------------------------------------
/client/src/fontspack.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Fonts | Dev Hub
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
--------------------------------------------------------------------------------
/client/src/imgpack.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Images | Dev Hub
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
--------------------------------------------------------------------------------
/client/src/androidpack.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Android | Dev Hub
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
--------------------------------------------------------------------------------
/client/data/ml.data.js:
--------------------------------------------------------------------------------
1 | /* ********************************************************** */
2 | // All ML Libraries Data Object
3 | /* ********************************************************** */
4 |
5 | let mlData = [
6 | {
7 | id: 1,
8 | lib_name: "NumPy",
9 | lib_details:
10 | "Numpy is used for handling multi-dimensional data and intricate mathematical functions.",
11 | lib_link: "https://numpy.org/",
12 | },
13 | {
14 | id: 2,
15 | lib_name: "Pandas",
16 | lib_details: "Pandas is used for data manipulation for numerical data and time series.",
17 | lib_link: "https://pandas.pydata.org/",
18 | },
19 | {
20 | id: 3,
21 | lib_name: "SciPy",
22 | lib_details:
23 | "Scipy is one of the leading machine libraries for accomplishing scientific computation.",
24 | lib_link: "https://scipy.org/",
25 | },
26 | {
27 | id: 4,
28 | lib_name: "Matplotlib",
29 | lib_details:
30 | "Matplotlib is a ML library employed for producing publication-ready figures, images, and plots in a range of formats via 2D plotting.",
31 | lib_link: "https://matplotlib.org/",
32 | },
33 | {
34 | id: 5,
35 | lib_name: "Scikit-Learn",
36 | lib_details:
37 | "Scikit-learn provides a simple yet powerful fit-transform and predict paradigm to learn from data, transform the data and finally predict.",
38 | lib_link: "https://scikit-learn.org/",
39 | },
40 | {
41 | id: 6,
42 | lib_name: "Statsmodels",
43 | lib_details:
44 | "Statsmodels provides an extensive list of capabilities in the form of regression models, time series analysis, autoregression and so on.",
45 | lib_link: "https://www.statsmodels.org/",
46 | },
47 | {
48 | id: 7,
49 | lib_name: "XGBoost",
50 | lib_details:
51 | "One of the most widely used libraries/algorithms used in various data science competitions and real-world use cases",
52 | lib_link: "https://xgboost.readthedocs.io/",
53 | },
54 | {
55 | id: 8,
56 | lib_name: "LightGBM",
57 | lib_details:
58 | "Another distributed and fast variant of GBM (Gradient Boosting Machines), LightGBM is from the house of Microsoft.",
59 | lib_link: "https://lightgbm.readthedocs.io/",
60 | },
61 | {
62 | id: 9,
63 | lib_name: "ELI5",
64 | lib_details:
65 | "ELI5 is one such library which provides the capabilities to debug classifiers and provide an explanation around the predictions.",
66 | lib_link: "https://github.com/TeamHG-Memex/eli5",
67 | },
68 | {
69 | id: 10,
70 | lib_name: "Tensorflow",
71 | lib_details:
72 | "One of the most widely used libraries for both research and production environments.",
73 | lib_link: "https://www.tensorflow.org/",
74 | },
75 | {
76 | id: 11,
77 | lib_name: "PyTorch",
78 | lib_details:
79 | "Pytorch is a Facebook-developed ML library that is based on the Torch Library.",
80 | lib_link: "https://pytorch.org/",
81 | },
82 | {
83 | id: 12,
84 | lib_name: "Keras",
85 | lib_details:
86 | "Keras provides a Python interface of Tensorflow Library especially focused on AI neural networks",
87 | lib_link: "https://keras.io/",
88 | },
89 | {
90 | id: 13,
91 | lib_name: "MlPack",
92 | lib_details:
93 | "MlPack is mostly C++-based ML library that has bindings to Python other languages including R programming, Julia, and GO.",
94 | lib_link: "https://github.com/mlpack/mlpack",
95 | },
96 | {
97 | id: 14,
98 | lib_name: "Armadillo",
99 | lib_details:
100 | "Armadillo is a linear algebra library employed for accomplishing the purposes of scientific computing.",
101 | lib_link: "http://arma.sourceforge.net/",
102 | },
103 | {
104 | id: 15,
105 | lib_name: "NLTK",
106 | lib_details:
107 | "NLTK is the widely used library for Text Classification and Natural Language Processing.",
108 | lib_link: "https://www.nltk.org/",
109 | },
110 | {
111 | id: 16,
112 | lib_name: "Gensim",
113 | lib_details:
114 | "Gensim is a fast and production ready NLP library. It is particularly designed for unsupervised topic modeling tasks apart from the usual set of NLP tasks.",
115 | lib_link: "https://radimrehurek.com/gensim/",
116 | },
117 | {
118 | id: 17,
119 | lib_name: "Seaborn",
120 | lib_details:
121 | "Seaborn is a library for making statistical graphics in Python. It builds on top of matplotlib and integrates closely with pandas data structures.",
122 | lib_link: "http://seaborn.pydata.org/",
123 | },
124 | {
125 | id: 18,
126 | lib_name: "Plotly",
127 | lib_details:
128 | "Plotly is a production grade visualization platform with wrappers in not just python but other languages like R, Julia, MATLAB, etc.",
129 | lib_link: "https://plot.ly/",
130 | },
131 | {
132 | id: 19,
133 | lib_name: "OpenCV",
134 | lib_details:
135 | "OpenCV is an open-source platform dedicated to computer vision and image processing.",
136 | lib_link: "https://opencv.org/",
137 | },
138 | {
139 | id: 20,
140 | lib_name: "OpenNN",
141 | lib_details:
142 | "OpenNN is an open-source ML library that leverages ML techniques for solving data mining and predictive analytics problems across various fields.",
143 | lib_link: "https://www.opennn.net/",
144 | },
145 | {
146 | id: 21,
147 | lib_name: "Theano",
148 | lib_details:
149 | "Theano is one of the speediest machine learning libraries for manipulating and evaluating mathematical expressions",
150 | lib_link: "https://developers.google.com/fonts/docs/developer_api",
151 | },
152 | ];
153 |
154 | /* ********************************************************** */
155 | // All ML Libraries Preview Mapping
156 | /* ********************************************************** */
157 |
158 | let mlLibrary = document.querySelector(".libraries");
159 |
160 | Object.values(mlData).map((val) => {
161 | mlLibrary.innerHTML += `
162 |
163 |
170 | `;
171 | });
172 |
--------------------------------------------------------------------------------
/client/css/pages/library.css:
--------------------------------------------------------------------------------
1 | /* **************************** Libraries Page Styles **************************** */
2 |
3 | section#libraries {
4 | position: relative;
5 | margin: 10rem auto;
6 | }
7 |
8 | div#dots-js {
9 | position: fixed;
10 | top: 0;
11 | left: 0;
12 | width: 100%;
13 | height: 100%;
14 | z-index: -1;
15 | }
16 |
17 | /* **************************** Library Header **************************** */
18 |
19 | section#libraries div.lib_header {
20 | position: relative;
21 | margin: 6rem auto;
22 | padding: 1rem;
23 | display: flex;
24 | align-content: center;
25 | justify-content: center;
26 | align-items: center;
27 | flex-direction: column;
28 | width: 90%;
29 | height: auto;
30 |
31 | /* Glass Effect */
32 | border-radius: 12px;
33 | background: rgba(255, 255, 255, 0.1);
34 | box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1), inset 0px 0px 40px 20px rgba(255, 255, 255, 0.2);
35 | border: 2px solid rgba(255, 255, 255, 0.7);
36 | backdrop-filter: blur(10px);
37 | -webkit-backdrop-filter: blur(10px);
38 | }
39 |
40 | div.lib_header img {
41 | margin: 2rem auto 1rem;
42 | width: 10rem;
43 | height: auto;
44 | }
45 |
46 | div.lib_header h2 {
47 | margin: 1rem auto;
48 | font-size: 5rem;
49 | font-weight: 500;
50 | font-family: "Astromax", sans-serif;
51 | color: var(--primarywhite);
52 | text-align: center;
53 | letter-spacing: 2px;
54 | }
55 |
56 | div.lib_header p {
57 | margin: 1rem auto;
58 | font-size: 1.8rem;
59 | font-weight: 700;
60 | font-family: "Liber", sans-serif;
61 | color: var(--primarygrey);
62 | text-align: center;
63 | letter-spacing: 1px;
64 | }
65 |
66 | div.lib_header form.searchbar {
67 | position: relative;
68 | margin: 2rem auto;
69 | width: 90%;
70 | }
71 |
72 | div.lib_header form.searchbar input {
73 | margin: auto;
74 | padding: 2.6rem 1.6rem;
75 | font-size: 2rem;
76 | font-weight: 500;
77 | font-family: var(--textfont);
78 | color: var(--primarywhite);
79 | letter-spacing: 0.8px;
80 | border-radius: 8px;
81 | background: rgba(255, 255, 255, 0.1);
82 | box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1), inset 0px 0px 10px 2px rgba(255, 255, 255, 0.1);
83 | border: 2px solid rgba(255, 255, 255, 0.6);
84 | transition: all 0.2s ease-in-out;
85 | }
86 |
87 | div.lib_header form.searchbar input::placeholder {
88 | color: rgba(255, 255, 255, 0.6);
89 | }
90 |
91 | div.lib_header form.searchbar input:focus,
92 | div.lib_header form.searchbar input:not(:placeholder-shown) {
93 | border: 2px solid rgba(255, 255, 255, 0.8);
94 | }
95 |
96 | @media (max-width: 768px) {
97 | div.lib_header img {
98 | width: 8rem;
99 | }
100 | div.lib_header h2 {
101 | font-size: 4rem;
102 | letter-spacing: 1px;
103 | }
104 | div.lib_header p {
105 | margin: 0.5rem auto;
106 | font-size: 1.7rem;
107 | letter-spacing: 0.8px;
108 | }
109 | div.lib_header form.searchbar {
110 | width: 100%;
111 | }
112 | div.lib_header form.searchbar input {
113 | padding: 2.2rem 1.5rem;
114 | font-size: 1.8rem;
115 | }
116 | }
117 |
118 | /* **************************** Library Card **************************** */
119 |
120 | section#libraries div.libraries {
121 | margin: 6rem auto;
122 | width: 90%;
123 | display: grid;
124 | grid-template-columns: repeat(3, 1fr);
125 | gap: 4rem;
126 | }
127 |
128 | div.libraries .lib_card {
129 | position: relative;
130 | margin: auto;
131 | padding: 2rem;
132 | display: flex;
133 | justify-content: center;
134 | align-items: center;
135 | flex-direction: column;
136 | width: -webkit-fill-available;
137 | height: -webkit-fill-available;
138 |
139 | /* Glass Effect */
140 | border-radius: 12px;
141 | background: rgba(255, 255, 255, 0.1);
142 | box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1), inset 0px 0px 40px 10px rgba(255, 255, 255, 0.1);
143 | backdrop-filter: blur(10px);
144 | -webkit-backdrop-filter: blur(10px);
145 | }
146 |
147 | div.libraries .lib_card::before {
148 | content: "";
149 | position: absolute;
150 | top: 0;
151 | left: 0;
152 | width: 100%;
153 | height: 100%;
154 | border: 2.5px solid var(--primarywhite);
155 | opacity: 0.4;
156 | border-radius: 12px;
157 | transition: all 0.15s ease-in-out;
158 | }
159 |
160 | div.libraries .lib_card:hover:before {
161 | opacity: 0.8;
162 | }
163 |
164 | div.libraries .lib_card h2 {
165 | margin: 1rem auto;
166 | font-size: 2.6rem;
167 | font-weight: 500;
168 | font-family: var(--textfont);
169 | color: var(--primarywhite);
170 | text-align: center;
171 | letter-spacing: 1px;
172 | }
173 |
174 | div.libraries .lib_card p {
175 | margin: 0.5rem auto;
176 | font-size: 1.7rem;
177 | font-weight: 500;
178 | font-family: "Liber", sans-serif;
179 | color: var(--primarygrey);
180 | text-align: center;
181 | letter-spacing: 1px;
182 | line-height: 1.5;
183 | }
184 |
185 | div.libraries .lib_card a.lib_link {
186 | position: relative;
187 | margin: 1rem auto;
188 | padding: 0.8rem 2rem;
189 | font-size: 1.6rem;
190 | font-weight: 600;
191 | font-family: var(--textfont);
192 | color: var(--primarywhite);
193 | text-align: center;
194 | letter-spacing: 0.8px;
195 | text-transform: uppercase;
196 | border-radius: 12px;
197 | background: rgba(255, 255, 255, 0.15);
198 | box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1), inset 0px 0px 10px 2px rgba(255, 255, 255, 0.2);
199 | transition: all 0.15s ease-in-out;
200 | z-index: 1;
201 | }
202 |
203 | div.libraries .lib_card a.lib_link:hover {
204 | background: rgba(255, 255, 255, 0.2);
205 | box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1), inset 0px 0px 10px 2px rgba(255, 255, 255, 0.25);
206 | }
207 |
208 | div.libraries .lib_card a.lib_link::before {
209 | content: "";
210 | position: absolute;
211 | top: 0;
212 | left: 0;
213 | width: 100%;
214 | height: 100%;
215 | border-radius: 12px;
216 | border: 2px solid var(--primarywhite);
217 | opacity: 0.4;
218 | transition: all 0.15s ease-in-out;
219 | }
220 |
221 | div.libraries .lib_card a.lib_link:hover:before {
222 | opacity: 0.6;
223 | }
224 |
225 | /* **************************** Responsive Media **************************** */
226 |
227 | @media (max-width: 992px) {
228 | section#libraries div.libraries {
229 | grid-template-columns: repeat(2, 1fr);
230 | }
231 | }
232 |
233 | @media (max-width: 572px) {
234 | section#libraries div.libraries {
235 | grid-template-columns: repeat(1, 1fr);
236 | }
237 | }
238 |
239 | /* **************************** Styles End **************************** */
240 |
--------------------------------------------------------------------------------
/client/css/components/settings.css:
--------------------------------------------------------------------------------
1 | /*
2 | _____ _ _ _
3 | / ____| | | | | (_)
4 | | (___ ___| |_| |_ _ _ __ __ _ ___
5 | \___ \ / _ \ __| __| | '_ \ / _` / __|
6 | ____) | __/ |_| |_| | | | | (_| \__ \
7 | |_____/ \___|\__|\__|_|_| |_|\__, |___/
8 | __/ |
9 | |___/
10 | */
11 |
12 | /* **************************** Fonts **************************** */
13 |
14 | @import url("https://fonts.googleapis.com/css2?family=Outfit:wght@200;300;400;500;600;700&display=swap");
15 | @import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800&display=swap");
16 | @import url("../../fonts/Liber/Liber-Font.css");
17 |
18 | /* **************************** Components Stylesheets **************************** */
19 |
20 | @import url(./header.css);
21 | @import url(./footer.css);
22 | @import url(./loader.css);
23 |
24 | /* **************************** Site General Settings **************************** */
25 |
26 | * {
27 | margin: 0;
28 | padding: 0;
29 | scroll-behavior: smooth;
30 | }
31 |
32 | /* **************************** Responsive Font Size **************************** */
33 |
34 | html {
35 | font-size: 62.5%;
36 | }
37 |
38 | @media (max-width: 992px) {
39 | html {
40 | font-size: 60%;
41 | }
42 | }
43 |
44 | @media (max-width: 768px) {
45 | html {
46 | font-size: 55%;
47 | }
48 | }
49 |
50 | /* **************************** Body Settings **************************** */
51 |
52 | body {
53 | font-family: var(--mainfont);
54 | background: var(--maincolor) url(../../img/bg_glass.png) no-repeat fixed center / cover;
55 | }
56 |
57 | main {
58 | opacity: 0;
59 | visibility: hidden;
60 | transition: all 0.6s ease-in-out;
61 | }
62 |
63 | /* **************************** Root Variables **************************** */
64 |
65 | :root {
66 | /* Default Colors */
67 | --primaryblack: #1b1d25;
68 | --primarywhite: #ffffff;
69 | --lightwhite: #f7fafc;
70 | --primarygrey: #bfc9d1;
71 | --maincolor: #420378;
72 | --primarycolor: #cbfa3a;
73 |
74 | /* Default Fonts */
75 | --mainfont: "Montserrat", sans-serif;
76 | --textfont: "Outfit", sans-serif;
77 | }
78 |
79 | /* **************************** Scroll Bar **************************** */
80 |
81 | ::-webkit-scrollbar {
82 | width: 6px;
83 | height: 6px;
84 | background: transparent;
85 | }
86 |
87 | ::-webkit-scrollbar-track {
88 | background: var(--maincolor);
89 | }
90 |
91 | ::-webkit-scrollbar-thumb {
92 | background: var(--primarywhite);
93 | }
94 |
95 | /* **************************** Selection **************************** */
96 |
97 | ::selection {
98 | color: var(--primarywhite);
99 | background: rgba(255, 255, 255, 0.25);
100 | }
101 |
102 | /* **************************** User Select None **************************** */
103 |
104 | img,
105 | object,
106 | .noselect {
107 | user-select: none;
108 | -webkit-user-select: none;
109 | -moz-user-select: none;
110 | -ms-user-select: none;
111 | }
112 |
113 | button.btn:active,
114 | button.btn:focus,
115 | a.btn:active,
116 | a.btn:focus {
117 | box-shadow: none;
118 | }
119 |
120 | /* **************************** Font Faces **************************** */
121 |
122 | @font-face {
123 | font-family: "Spoiled";
124 | src: url(../../fonts/Spoiled.otf) format("opentype");
125 | font-style: normal;
126 | font-weight: normal;
127 | text-rendering: optimizeLegibility;
128 | }
129 |
130 | @font-face {
131 | font-family: "PerryWaters";
132 | src: url(../../fonts/PerryWaters.woff) format("woff"),
133 | url(../../fonts/PerryWaters.otf) format("opentype");
134 | font-style: normal;
135 | font-weight: normal;
136 | text-rendering: optimizeLegibility;
137 | }
138 |
139 | @font-face {
140 | font-family: "Astromax";
141 | src: url(../../fonts/Astromax.woff) format("woff"),
142 | url(../../fonts/Astromax.ttf) format("truetype");
143 | font-style: normal;
144 | font-weight: normal;
145 | text-rendering: optimizeLegibility;
146 | }
147 |
148 | @font-face {
149 | font-family: "Spectron";
150 | src: url(../../fonts/Spectron.woff2) format("woff2"),
151 | url(../../fonts/Spectron.otf) format("opentype");
152 | font-style: normal;
153 | font-weight: normal;
154 | text-rendering: optimizeLegibility;
155 | }
156 |
157 | /* **************************** Swal Alert **************************** */
158 |
159 | div.swal-overlay {
160 | background: rgba(0, 0, 0, 0.2);
161 | box-shadow: inset 0px 0px 50px 20px rgba(0, 0, 0, 0.1);
162 | backdrop-filter: blur(10px);
163 | -webkit-backdrop-filter: blur(10px);
164 | }
165 |
166 | div.swal-overlay .swal-modal {
167 | margin: auto;
168 | padding: 1rem;
169 | border-radius: 20px;
170 | background: rgba(255, 255, 255, 0.1);
171 | box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
172 | border: 2px solid rgba(255, 255, 255, 0.2);
173 | }
174 |
175 | div.swal-overlay .swal-modal .swal-title {
176 | margin: auto;
177 | font-size: 4.5rem;
178 | font-weight: 400;
179 | font-family: "Spoiled", sans-serif;
180 | color: var(--primarywhite);
181 | -webkit-text-stroke: 0.8px var(--primarywhite);
182 | letter-spacing: 3px;
183 | text-align: center;
184 | }
185 |
186 | div.swal-overlay .swal-modal .swal-text {
187 | margin: -1rem auto;
188 | font-size: 2.1rem;
189 | font-weight: 500;
190 | font-family: "Liber", sans-serif;
191 | color: var(--lightwhite);
192 | letter-spacing: 0.8px;
193 | text-align: center;
194 | }
195 |
196 | div.swal-overlay .swal-modal .swal-footer {
197 | margin: 1rem auto 0;
198 | text-align: center;
199 | }
200 |
201 | div.swal-overlay .swal-modal .swal-button {
202 | position: relative;
203 | padding: 0.8rem 2rem;
204 | font: 600 1.8rem var(--textfont);
205 | color: var(--primarywhite);
206 | border-radius: 50px;
207 | background: rgba(255, 255, 255, 0.15);
208 | box-shadow: inset 60px 0px 10px 2px rgba(255, 255, 255, 0.2);
209 | transition: all 0.15s ease-in-out;
210 | }
211 |
212 | div.swal-overlay .swal-modal .swal-button:hover {
213 | background: rgba(255, 255, 255, 0.2);
214 | box-shadow: inset 60px 0px 10px 2px rgba(255, 255, 255, 0.3);
215 | }
216 |
217 | div.swal-overlay .swal-modal .swal-button::before {
218 | content: "";
219 | position: absolute;
220 | top: 0;
221 | left: 0;
222 | width: 100%;
223 | height: 100%;
224 | border: none;
225 | border-right: 1.5px solid var(--primarywhite);
226 | border-bottom: 1.5px solid var(--primarywhite);
227 | opacity: 0.4;
228 | border-radius: 50px;
229 | }
230 |
231 | /* **************************** Styles End **************************** */
232 |
--------------------------------------------------------------------------------
/client/data/android.data.js:
--------------------------------------------------------------------------------
1 | /* ********************************************************** */
2 | // All Android Libraries Data Object
3 | /* ********************************************************** */
4 |
5 | let androidData = [
6 | {
7 | id: 1,
8 | lib_name: "Picasso",
9 | lib_details:
10 | " Picasso claims to allow for hassle-free image loading in the application—often in one line of code. ",
11 | lib_link: "https://square.github.io/picasso/",
12 | },
13 | {
14 | id: 2,
15 | lib_name: "Glide",
16 | lib_details:
17 | "Glide is yet another praised image loader and one of the best new Android libraries for developers.",
18 | lib_link: "https://github.com/bumptech/glide",
19 | },
20 | {
21 | id: 3,
22 | lib_name: "Zxing",
23 | lib_details:
24 | "ZXing is a barcode image-processing Android library that is implemented in Java.",
25 | lib_link: "https://github.com/zxing/zxing",
26 | },
27 | {
28 | id: 4,
29 | lib_name: "CAMView",
30 | lib_details:
31 | "CAMView is an android camera easy access library and installed QR scanner, based on ZXing.",
32 | lib_link: "https://github.com/LivotovLabs/CamView",
33 | },
34 | {
35 | id: 5,
36 | lib_name: "Stetho",
37 | lib_details: "Stetho is a sophisticated debug bridge for Android applications.",
38 | lib_link: "http://facebook.github.io/stetho/",
39 | },
40 | {
41 | id: 6,
42 | lib_name: "ExoPlayer",
43 | lib_details: "ExoPlayer is an Android media player library developed by Google.",
44 | lib_link: "https://exoplayer.dev/hello-world.html",
45 | },
46 | {
47 | id: 7,
48 | lib_name: "Dagger 2",
49 | lib_details:
50 | "Dagger 2 is mainly relies on using Java annotation processors that include compiling time in order to calculate and identify dependencies.",
51 | lib_link: "https://dagger.dev/",
52 | },
53 | {
54 | id: 8,
55 | lib_name: "Retrofit",
56 | lib_details:
57 | "Retrofit is a type-safe REST client build by square for Android and Java which intends to make it simpler to expand RESTful web services.",
58 | lib_link: "https://square.github.io/retrofit/",
59 | },
60 |
61 | {
62 | id: 9,
63 | lib_name: "Espresso",
64 | lib_details:
65 | "Espresso is an open source android user interface (UI) testing framework developed by Google.",
66 | lib_link: "https://developer.android.com/training/testing/espresso",
67 | },
68 | {
69 | id: 10,
70 | lib_name: "Moshi",
71 | lib_details:
72 | "Moshi JSON library, created by Square, converts JSON into Java and Kotlin models where converting JSON to Java model (and vice versa) is straightforward.",
73 | lib_link: "https://github.com/square/moshi",
74 | },
75 | {
76 | id: 11,
77 | lib_name: "Android Jetpack",
78 | lib_details:
79 | "Android Jetpack is a selection of software components which helps building reliable Android apps.",
80 | lib_link: "https://developer.android.com/jetpack",
81 | },
82 | {
83 | id: 12,
84 | lib_name: "Android Databinding",
85 | lib_details:
86 | "Android DataBinding library allow you to bind UI elements in your layout to data sources in your app via declarative format. ",
87 | lib_link: "https://developer.android.com/topic/libraries/data-binding",
88 | },
89 | {
90 | id: 13,
91 | lib_name: "RxJava",
92 | lib_details:
93 | "RxJava is an open source implementation of ReactiveX library for Java Virtual Machine (JVM). ",
94 | lib_link: "https://github.com/ReactiveX/RxJava",
95 | },
96 | {
97 | id: 14,
98 | lib_name: "Room",
99 | lib_details:
100 | "Room is an official Android ORM-it relies a lot on annotations and standard SQL syntax while its APi is similar to Retrofit API",
101 | lib_link: "https://developer.android.com/jetpack/androidx/releases/room",
102 | },
103 | {
104 | id: 15,
105 | lib_name: "Robolectric",
106 | lib_details:
107 | "Robolectric is a great library for unit testing and handling several aspects of Android apps including views, resource loading and more.",
108 | lib_link: "http://robolectric.org/",
109 | },
110 | {
111 | id: 16,
112 | lib_name: "EventBus",
113 | lib_details:
114 | "An open-source library for Android and Java using the publisher/subscriber pattern for loose coupling",
115 | lib_link: "https://greenrobot.org/eventbus/",
116 | },
117 | {
118 | id: 17,
119 | lib_name: "ButterKnife",
120 | lib_details:
121 | "Renowned view binding android support library helping in assigning ids to views very effortlessly",
122 | lib_link: "https://jakewharton.github.io/butterknife/",
123 | },
124 | {
125 | id: 18,
126 | lib_name: "MPAndroidChart",
127 | lib_details:
128 | "Android chart/graph view library with radar, line, bar, bubble, pie, candlestick charts along with scaling, animations, and dragging",
129 | lib_link:
130 | "https://play.google.com/store/apps/details?id=com.xxmassdeveloper.mpchartexample&hl=en_IN&gl=US",
131 | },
132 | {
133 | id: 19,
134 | lib_name: "MyLittleCanvas",
135 | lib_details:
136 | "Android Library used to achieve features such as custom underline on a TextView, Textshape, lineshape, etc.",
137 | lib_link: "https://github.com/florent37/MyLittleCanvas",
138 | },
139 | {
140 | id: 20,
141 | lib_name: "GravityView",
142 | lib_details: "Gravity Forms collects data. GravityView displays the data.",
143 | lib_link: "https://gravityview.co/",
144 | },
145 | {
146 | id: 21,
147 | lib_name: "Chuck",
148 | lib_details: "Simple in-app HTTP inspector for Android OkHttp clients",
149 | lib_link: "https://github.com/jgilfelt/chuck",
150 | },
151 | {
152 | id: 22,
153 | lib_name: "ThreeTen",
154 | lib_details: "Date and time handling library for Android using java",
155 | lib_link: "https://www.threeten.org/",
156 | },
157 | {
158 | id: 23,
159 | lib_name: "Timber",
160 | lib_details:
161 | "A logger with a small, extensible API which provides utility on top of Android's normal Log class.",
162 | lib_link: "https://github.com/JakeWharton/timber",
163 | },
164 | {
165 | id: 24,
166 | lib_name: "Android KTX",
167 | lib_details:
168 | "Android KTX is a set of Kotlin extensions that wraps Android API, making it more user-friendly",
169 | lib_link: "https://github.com/android/android-ktx",
170 | },
171 | ];
172 |
173 | /* ********************************************************** */
174 | // All Android Libraries Preview Mapping
175 | /* ********************************************************** */
176 |
177 | let androidLibrary = document.querySelector(".libraries");
178 |
179 | Object.values(androidData).map((val) => {
180 | androidLibrary.innerHTML += `
181 |
182 |
189 | `;
190 | });
191 |
--------------------------------------------------------------------------------
/client/css/components/header.css:
--------------------------------------------------------------------------------
1 | /* **************************** Header Section **************************** */
2 |
3 | header {
4 | position: sticky;
5 | top: 3rem;
6 | z-index: 10;
7 | margin: auto;
8 | padding: 1.2rem 2rem;
9 | width: 90%;
10 |
11 | /* Glass Effect */
12 | border-radius: 10px;
13 | background: rgba(255, 255, 255, 0.1);
14 | box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1), inset 0px 0px 40px 20px rgba(255, 255, 255, 0.2);
15 | border: 2px solid rgba(255, 255, 255, 0.4);
16 | backdrop-filter: blur(10px);
17 | -webkit-backdrop-filter: blur(10px);
18 | }
19 |
20 | header nav {
21 | display: flex;
22 | justify-content: space-between;
23 | align-items: center;
24 | }
25 |
26 | /* **************************** Header Backdrop Blur **************************** */
27 |
28 | div#backdrop_bg {
29 | position: fixed;
30 | top: 0;
31 | left: 0;
32 | width: 100%;
33 | height: 100vh;
34 | backdrop-filter: blur(40px);
35 | -webkit-backdrop-filter: blur(40px);
36 | opacity: 0;
37 | visibility: hidden;
38 | z-index: 9;
39 | transition: all 0.4s ease-in-out;
40 | }
41 |
42 | div#backdrop_bg.backdrop_active {
43 | opacity: 1;
44 | visibility: visible;
45 | }
46 |
47 | /* **************************** Header Brand **************************** */
48 |
49 | header nav a.nav_brand {
50 | display: flex;
51 | justify-content: center;
52 | align-items: center;
53 | text-decoration: none;
54 | user-select: none;
55 | }
56 |
57 | header nav a.nav_brand img {
58 | margin: auto;
59 | margin-right: 0.5rem;
60 | width: 4rem;
61 | height: auto;
62 | }
63 |
64 | header nav a.nav_brand h4 {
65 | margin: auto;
66 | margin-left: 0.5rem;
67 | margin-bottom: -1rem;
68 | font-size: 3.6rem;
69 | font-weight: 400;
70 | font-family: "Spoiled", sans-serif;
71 | color: var(--primarywhite);
72 | letter-spacing: 1px;
73 | }
74 |
75 | /* **************************** Header Menus & Btn **************************** */
76 |
77 | header nav a.nav_btn,
78 | header nav div.nav_items a.nav_links {
79 | position: relative;
80 | margin: auto 0.8rem;
81 | padding: 0.8rem 1rem 0.5rem;
82 | font-size: 1.7rem;
83 | font-weight: 700;
84 | font-family: "Liber", sans-serif;
85 | color: var(--primarywhite);
86 | letter-spacing: 1.2px;
87 | text-align: center;
88 | text-decoration: none;
89 | border-radius: 6px;
90 | background: rgba(255, 255, 255, 0.1);
91 | box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2), inset 0px 0px 20px 2px rgba(255, 255, 255, 0.2);
92 | transition: all 0.15s ease-in-out;
93 | }
94 |
95 | header nav a.nav_btn::before,
96 | header nav div.nav_items a.nav_links::before {
97 | content: "";
98 | position: absolute;
99 | top: 0;
100 | left: 0;
101 | width: 100%;
102 | height: 100%;
103 | border: 2px solid var(--primarywhite);
104 | opacity: 0.4;
105 | border-radius: 6px;
106 | transition: all 0.15s ease-in-out;
107 | }
108 |
109 | header nav a.nav_btn:hover,
110 | header nav div.nav_items a.nav_links:hover,
111 | header nav div.nav_items a.nav_links.active {
112 | background: rgba(255, 255, 255, 0.2);
113 | }
114 |
115 | header nav a.nav_btn:hover:before,
116 | header nav div.nav_items a.nav_links:hover:before,
117 | header nav div.nav_items a.nav_links.active:before {
118 | opacity: 0.8;
119 | }
120 |
121 | /* **************************** Header Candy **************************** */
122 |
123 | header nav div.menu_icon {
124 | position: relative;
125 | width: 40px;
126 | height: 40px;
127 | display: flex;
128 | justify-content: center;
129 | align-items: center;
130 | color: var(--lightwhite);
131 | border-radius: 6px;
132 | background: rgba(255, 255, 255, 0.1);
133 | box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2), inset 0px 0px 20px 2px rgba(255, 255, 255, 0.2);
134 | cursor: pointer;
135 | overflow: hidden;
136 | z-index: 10;
137 | }
138 |
139 | /* Icon Open */
140 |
141 | header nav div.menu_icon .menu_open {
142 | position: absolute;
143 | width: 11px;
144 | height: 11px;
145 | background: currentColor;
146 | border-radius: 2px;
147 | transition: all 0.25s ease-in-out;
148 | }
149 |
150 | header nav div.menu_icon .menu_open.box_1 {
151 | top: 8px;
152 | left: 8px;
153 | }
154 |
155 | header nav div.menu_icon .menu_open.box_2 {
156 | top: 8px;
157 | right: 8px;
158 | }
159 |
160 | header nav div.menu_icon .menu_open.box_3 {
161 | bottom: 8px;
162 | left: 8px;
163 | }
164 |
165 | header nav div.menu_icon .menu_open.box_4 {
166 | bottom: 8px;
167 | right: 8px;
168 | }
169 |
170 | /* Icon Close */
171 |
172 | header nav div.menu_icon .menu_close {
173 | position: absolute;
174 | width: 25px;
175 | height: 3px;
176 | background: currentColor;
177 | border-radius: 2px;
178 | transition: all 0.25s ease-in-out;
179 | }
180 |
181 | header nav div.menu_icon .menu_close.close_1 {
182 | transform: rotate(45deg) scaleX(0);
183 | }
184 |
185 | header nav div.menu_icon .menu_close.close_2 {
186 | transform: rotate(-45deg) scaleX(0);
187 | }
188 |
189 | /* Active State: Animation */
190 |
191 | header nav div.menu_candy.menu_active .menu_open {
192 | top: 50%;
193 | left: 50%;
194 | transform: translate(-50%, -50%) scale(0);
195 | }
196 |
197 | header nav div.menu_candy.menu_active .menu_close.close_1 {
198 | transform: rotate(45deg) scaleX(1) rotate(180deg);
199 | }
200 |
201 | header nav div.menu_candy.menu_active .menu_close.close_2 {
202 | transform: rotate(-45deg) scaleX(1) rotate(180deg);
203 | }
204 |
205 | /* **************************** Header Menu Desktop **************************** */
206 |
207 | header nav div.nav_items {
208 | margin: auto 0;
209 | display: flex;
210 | justify-content: center;
211 | align-items: center;
212 | }
213 |
214 | /* **************************** Header Menu Mobile **************************** */
215 |
216 | @media (min-width: 768px) {
217 | header nav div.menu_icon {
218 | display: none;
219 | }
220 | }
221 |
222 | @media (max-width: 768px) {
223 | header nav div.nav_items {
224 | position: absolute;
225 | top: 0;
226 | left: 0;
227 | margin: 1rem 0;
228 | padding: 1rem;
229 | transform: translateY(20%);
230 | width: 100%;
231 | flex-direction: column;
232 | clip-path: inset(0 0 100% 0);
233 | transition: all 0.4s cubic-bezier(0.87, 0, 0.13, 1);
234 |
235 | /* Glass Effect */
236 | border-radius: 10px;
237 | background: rgba(255, 255, 255, 0.1);
238 | box-shadow: inset 0px 0px 40px 20px rgba(255, 255, 255, 0.2);
239 | border: 2px solid rgba(255, 255, 255, 0.4);
240 | backdrop-filter: blur(20px);
241 | -webkit-backdrop-filter: blur(20px);
242 | }
243 |
244 | header nav div.menu_icon.menu_active ~ div.nav_items {
245 | clip-path: inset(0 0 0 0);
246 | }
247 | }
248 |
249 | /* **************************** Responsive Medias **************************** */
250 |
251 | @media (max-width: 992px) {
252 | header nav div.nav_items a.nav_links {
253 | margin: auto 0.4rem;
254 | padding: 0.8rem 0.7rem 0.5rem;
255 | }
256 | }
257 |
258 | @media (max-width: 768px) {
259 | header nav div.nav_items a.nav_links {
260 | margin: 0.6rem auto;
261 | padding: 1.2rem 2.5rem 0.8rem;
262 | width: 100%;
263 | }
264 | }
265 |
266 | /* **************************** Styles End **************************** */
267 |
--------------------------------------------------------------------------------
/client/data/api.data.js:
--------------------------------------------------------------------------------
1 | /* ********************************************************** */
2 | // All Api Libraries Data Object
3 | /* ********************************************************** */
4 |
5 | let apiData = [
6 | {
7 | id: 1,
8 | lib_name: "OpenWeatherMap",
9 | lib_details: "Simple, fast, free and best API for weather forecast",
10 | lib_link: "https://openweathermap.org/",
11 | },
12 | {
13 | id: 2,
14 | lib_name: "API FOOTBALL",
15 | lib_details:
16 | "Restful API for Football data with competitions, Livescore, teams, statistics, predictions etc.",
17 | lib_link: "https://www.api-football.com/",
18 | },
19 | {
20 | id: 3,
21 | lib_name: "MessageBird",
22 | lib_details:
23 | "API for seamless SMS, Chat, Voice functionalities for websites and applications",
24 | lib_link: "https://developers.messagebird.com/",
25 | },
26 | {
27 | id: 4,
28 | lib_name: "Newscatcher",
29 | lib_details:
30 | "News API that provides a real-time coverage feed to directly use the news data",
31 | lib_link: "https://newscatcherapi.com/",
32 | },
33 | {
34 | id: 5,
35 | lib_name: "SendGrid",
36 | lib_details:
37 | "Cloud-based Web API that allows to send email without having to maintain email servers",
38 | lib_link: "https://sendgrid.com/",
39 | },
40 | {
41 | id: 6,
42 | lib_name: "WordPress API",
43 | lib_details:
44 | "The WordPress REST API provides the posts, pages, taxonomies, and other built-in WordPress data types",
45 | lib_link: "https://sendgrid.com/",
46 | },
47 | {
48 | id: 7,
49 | lib_name: "Domainr API",
50 | lib_details:
51 | "The Domainr API lets you retrieve instant domain search results and availability status",
52 | lib_link: "https://domainr.com/docs/api",
53 | },
54 | {
55 | id: 8,
56 | lib_name: "WordsAPI",
57 | lib_details:
58 | "Retrieve information about English words, including definitions, synonyms, rhymes, pronunciation etc",
59 | lib_link: "https://www.wordsapi.com/",
60 | },
61 | {
62 | id: 9,
63 | lib_name: "BoxDev",
64 | lib_details: "Allows developers to build applications that can run in the cloud",
65 | lib_link: "https://developer.box.com/",
66 | },
67 | {
68 | id: 10,
69 | lib_name: "Stripe API",
70 | lib_details: "Payment API that provides payments, billing, invoicing etc. functionalities",
71 | lib_link: "https://stripe.com/in",
72 | },
73 | {
74 | id: 11,
75 | lib_name: "paybook",
76 | lib_details: "Financial hub that provides API for Fintech developers",
77 | lib_link: "https://www.paybook.com/",
78 | },
79 | {
80 | id: 12,
81 | lib_name: "Google Cloud Storage",
82 | lib_details: "Simple, JSON-backed API for accessing and manipulating Cloud Storage",
83 | lib_link: "https://cloud.google.com/storage/docs/json_api",
84 | },
85 | {
86 | id: 13,
87 | lib_name: "Spotify API",
88 | lib_details:
89 | "Provides user-friendly music metadata and playlists for using in web and applications",
90 | lib_link: "https://developer.spotify.com/",
91 | },
92 | {
93 | id: 14,
94 | lib_name: "Google Maps",
95 | lib_details:
96 | "Helps developers to take the power of Google Maps and put it directly on web and applications",
97 | lib_link: "https://developers.google.com/maps",
98 | },
99 | {
100 | id: 15,
101 | lib_name: "IMDb API",
102 | lib_details: "Provides developers the database of information about movies and TV shows",
103 | lib_link: "https://imdb-api.com/",
104 | },
105 | {
106 | id: 16,
107 | lib_name: "NASA API",
108 | lib_details:
109 | "The objective of these APIs is to make NASA data, including imagery, eminently accessible to application developers",
110 | lib_link: "https://api.nasa.gov/",
111 | },
112 | {
113 | id: 17,
114 | lib_name: "Giphy API",
115 | lib_details:
116 | "GIPHY API helps you integrate the world's largest GIF library, boost engagement with just a few lines of code",
117 | lib_link: "https://developers.giphy.com/",
118 | },
119 | {
120 | id: 18,
121 | lib_name: "Bitly API",
122 | lib_details:
123 | "By this API, you will exercise the full power of your links through automated link customization, click analytics",
124 | lib_link: "https://dev.bitly.com/",
125 | },
126 | {
127 | id: 19,
128 | lib_name: "Sunrise Sunset",
129 | lib_details:
130 | "A free API that provides sunset and sunrise times for a given latitude and longitude",
131 | lib_link: "https://sunrise-sunset.org/api",
132 | },
133 | {
134 | id: 20,
135 | lib_name: "SpaceX API",
136 | lib_details:
137 | "Open Source REST API for SpaceX launch, rocket, core, capsule, starlink, launchpad, and landing pad data",
138 | lib_link: "https://github.com/r-spacex/SpaceX-API",
139 | },
140 | {
141 | id: 21,
142 | lib_name: "Google Fonts API",
143 | lib_details:
144 | "The Developer API gives access to the metadata for all families served by Google Fonts",
145 | lib_link: "https://developers.google.com/fonts/docs/developer_api",
146 | },
147 | {
148 | id: 22,
149 | lib_name: "IBM Watson",
150 | lib_details:
151 | "Watson APIs make it easy to incorporate conversation, language and advanced text analytics into your applications",
152 | lib_link: "https://developer.ibm.com/components/watson-apis/",
153 | },
154 | {
155 | id: 23,
156 | lib_name: "FullContact API",
157 | lib_details:
158 | "Privacy-safe Identity Resolution company building trust between people and brands",
159 | lib_link: "https://www.fullcontact.com/developer-portal/",
160 | },
161 | {
162 | id: 24,
163 | lib_name: "Twitter API",
164 | lib_details:
165 | "Twitter API enables to tap into core elements of twitter like: Tweets, direct messages, spaces, users etc,",
166 | lib_link: "https://developer.twitter.com/en/docs",
167 | },
168 | {
169 | id: 25,
170 | lib_name: "Facebook API",
171 | lib_details:
172 | "HTTP-based API that allows developers to extract data and functionality from the Facebook platform",
173 | lib_link: "https://developers.facebook.com/",
174 | },
175 | {
176 | id: 26,
177 | lib_name: "Amazon S3 API",
178 | lib_details:
179 | "An HTTP/S REST API where all operations are via HTTP PUT, POST, GET, DELETE, and HEAD requests",
180 | lib_link: "https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html",
181 | },
182 | {
183 | id: 27,
184 | lib_name: "Dropbox",
185 | lib_details:
186 | "Allows developers to work with files in Dropbox, including advanced functionality like full-text search, thumbnails, and sharing",
187 | lib_link: "https://www.dropbox.com/developers/documentation/http/documentation",
188 | },
189 | ];
190 |
191 | /* ********************************************************** */
192 | // All Api Libraries Preview Mapping
193 | /* ********************************************************** */
194 |
195 | let apiLibrary = document.querySelector(".libraries");
196 |
197 | Object.values(apiData).map((val) => {
198 | apiLibrary.innerHTML += `
199 |
200 |
207 | `;
208 | });
209 |
--------------------------------------------------------------------------------
/client/data/icon.data.js:
--------------------------------------------------------------------------------
1 | /* ********************************************************** */
2 | // All Icons Libraries Data Object
3 | /* ********************************************************** */
4 |
5 | let iconData = [
6 | {
7 | id: 1,
8 | lib_name: "Font Awesome",
9 | lib_details:
10 | "The web's most popular icon set & toolkit with vector icons & logos for your website.",
11 | lib_link: "https://fontawesome.com/",
12 | },
13 | {
14 | id: 2,
15 | lib_name: "Boxicons",
16 | lib_details:
17 | "A simple vector icons crafted for designers & developers to use in your project.",
18 | lib_link: "https://boxicons.com/",
19 | },
20 | {
21 | id: 3,
22 | lib_name: "Material Icons",
23 | lib_details:
24 | "A delightful, beautifully crafted symbols for common actions and items to use.",
25 | lib_link: "https://material.io/icons/",
26 | },
27 | {
28 | id: 4,
29 | lib_name: "Flaticon",
30 | lib_details:
31 | "A largest database for wide variety of vector icons in SVG, PNG, EPS or Icon Font.",
32 | lib_link: "https://flaticon.com/",
33 | },
34 | {
35 | id: 5,
36 | lib_name: "Tabler Icons",
37 | lib_details:
38 | "A set of over many free high-quality SVG icons with size & stroke customizable.",
39 | lib_link: "https://tablericons.com/",
40 | },
41 | {
42 | id: 6,
43 | lib_name: "Shape",
44 | lib_details: "The collection of icons and illustrations with fully customizable options.",
45 | lib_link: "https://shape.so/",
46 | },
47 | {
48 | id: 7,
49 | lib_name: "Lottie Icons",
50 | lib_details:
51 | "A set of animated lottie files icons that work like magic on your webflow site.",
52 | lib_link: "https://lottieflow.com/",
53 | },
54 | {
55 | id: 8,
56 | lib_name: "Icons8",
57 | lib_details:
58 | "A variety icons, illustrations, photos, music, and design tools with icons8 toolkit.",
59 | lib_link: "https://icons8.com/",
60 | },
61 | {
62 | id: 9,
63 | lib_name: "Nucleo",
64 | lib_details:
65 | "A cool icon organizer & library of icons, powerful app to customize & collect icons.",
66 | lib_link: "https://nucleoapp.com/",
67 | },
68 | {
69 | id: 10,
70 | lib_name: "Streamline Icons",
71 | lib_details:
72 | "A collection of icon pack which work faster with our plugins for figma & sketch.",
73 | lib_link: "https://streamlineicons.com/",
74 | },
75 | {
76 | id: 11,
77 | lib_name: "LineIcons",
78 | lib_details:
79 | "A handcrafted icons pack for modern UI of web, android, ios, desktop app projects.",
80 | lib_link: "https://lineicons.com/",
81 | },
82 | {
83 | id: 12,
84 | lib_name: "Feather Icons",
85 | lib_details:
86 | "A simply beautiful open source icons pack with an emphasis on simplicity & flexibility.",
87 | lib_link: "https://feathericons.com/",
88 | },
89 | {
90 | id: 13,
91 | lib_name: "Ionicons",
92 | lib_details: "A premium icons for web, ios, android, desktop apps with SVG & Web Font.",
93 | lib_link: "https://ionicons.com/",
94 | },
95 | {
96 | id: 14,
97 | lib_name: "CSS Icons",
98 | lib_details:
99 | "A pure built-in CSS icons library, & format in pure CSS, SVG, Figma & Adobe XD.",
100 | lib_link: "https://css.gg/",
101 | },
102 | {
103 | id: 15,
104 | lib_name: "Freeicons",
105 | lib_details:
106 | "The largest database of free icons available in PNG, SVG, EPS, PSD & BASE 64.",
107 | lib_link: "https://freeicons.io/",
108 | },
109 | {
110 | id: 16,
111 | lib_name: "Iconpacks",
112 | lib_details: "Free PNG image, SVG vector icons for commercial and personal use.",
113 | lib_link: "https://www.iconpacks.net/",
114 | },
115 | {
116 | id: 17,
117 | lib_name: "Iconfinder",
118 | lib_details: "Icons and Illustrations extensive, made easy. Make that icon perfect.",
119 | lib_link: "https://www.iconfinder.com/",
120 | },
121 | {
122 | id: 18,
123 | lib_name: "Lordicon",
124 | lib_details: "Powerful animated icon library with every animated Lottie animations.",
125 | lib_link: "https://lordicon.com/",
126 | },
127 | {
128 | id: 19,
129 | lib_name: "UX Wing",
130 | lib_details: "Well Optimized SVG & PNG icons for interface design of Web and App Dev.",
131 | lib_link: "https://uxwing.com/",
132 | },
133 | {
134 | id: 20,
135 | lib_name: "Freepik",
136 | lib_details: "One of the most popular platforms for finding free vector icons online",
137 | lib_link: "https://www.freepik.com/",
138 | },
139 | {
140 | id: 21,
141 | lib_name: "Iconninja",
142 | lib_details: "Provides icon materials with detailed information, in PNG and SVG",
143 | lib_link: "https://www.iconninja.com/",
144 | },
145 | {
146 | id: 22,
147 | lib_name: "Vector4Free",
148 | lib_details: "Attractive icons and vector graphics personal use",
149 | lib_link: "https://www.vector4free.com/",
150 | },
151 | {
152 | id: 23,
153 | lib_name: "The Noun Project",
154 | lib_details: "Cool bi-colored icons stock for almost everything",
155 | lib_link: "https://thenounproject.com/",
156 | },
157 | {
158 | id: 24,
159 | lib_name: "Iconmonstr",
160 | lib_details: "Comprehensive icon library offers outlined and filled versions of each icon",
161 | lib_link: "https://iconmonstr.com/",
162 | },
163 | {
164 | id: 25,
165 | lib_name: "Orion",
166 | lib_details: "Cool SVG vector icons of line, solid, color and flat styles",
167 | lib_link: "https://orioniconlibrary.com/",
168 | },
169 | {
170 | id: 26,
171 | lib_name: "IcoMoon",
172 | lib_details: "Icon fonts and Icon packs, available on both website and app",
173 | lib_link: "https://icomoon.io/",
174 | },
175 | {
176 | id: 27,
177 | lib_name: "Pictonic",
178 | lib_details: "Offers an array of icon fonts sorted according to theme",
179 | lib_link: "https://pictonic.co/",
180 | },
181 | {
182 | id: 28,
183 | lib_name: "Glyphish",
184 | lib_details: "Features icons for iOS, Android and the Apple Watch",
185 | lib_link: "https://www.glyphish.com/",
186 | },
187 | {
188 | id: 29,
189 | lib_name: "PixelLove",
190 | lib_details: "Six versatile icon styles for iOS and Android platforms",
191 | lib_link: "https://www.pixellove.com/",
192 | },
193 | {
194 | id: 30,
195 | lib_name: "Smashicons",
196 | lib_details: "Very large collection of icons, don't all follow the same style",
197 | lib_link: "https://smashicons.com/",
198 | },
199 | {
200 | id: 31,
201 | lib_name: "Roundicons",
202 | lib_details: "Commercial use icon library made for apps, websites, infographics and prints",
203 | lib_link: "https://roundicons.com/",
204 | },
205 | {
206 | id: 32,
207 | lib_name: "React Icons",
208 | lib_details:
209 | "Icon compilation library to add icons from various libraries into React project as an SVG element",
210 | lib_link: "https://react-icons.github.io/react-icons/",
211 | },
212 | ];
213 |
214 | /* ********************************************************** */
215 | // All Icons Libraries Preview Mapping
216 | /* ********************************************************** */
217 |
218 | let iconLibrary = document.querySelector(".libraries");
219 |
220 | Object.values(iconData).map((val) => {
221 | iconLibrary.innerHTML += `
222 |
223 |
230 | `;
231 | });
232 |
--------------------------------------------------------------------------------
/client/data/css.data.js:
--------------------------------------------------------------------------------
1 | /* ********************************************************** */
2 | // All Css Libraries Data Object
3 | /* ********************************************************** */
4 |
5 | let cssData = [
6 | {
7 | id: 1,
8 | lib_name: "Bootstrap",
9 | lib_details: "A popular toolkit for quickly design responsive sites with Bootstrap.",
10 | lib_link: "https://getbootstrap.com/",
11 | },
12 | {
13 | id: 2,
14 | lib_name: "Materialize",
15 | lib_details: "A modern responsive front-end framework based on Material Design.",
16 | lib_link: "https://materializecss.com/",
17 | },
18 | {
19 | id: 3,
20 | lib_name: "Tailwind CSS",
21 | lib_details: "A utility-first CSS framework packed with classes to build any design.",
22 | lib_link: "https://tailwindcss.com/",
23 | },
24 | {
25 | id: 4,
26 | lib_name: "UI Kit",
27 | lib_details:
28 | "A modular front-end framework for developing fast and powerful web interfaces.",
29 | lib_link: "https://getuikit.com/",
30 | },
31 | {
32 | id: 5,
33 | lib_name: "Halfmoon CSS",
34 | lib_details: "A Front-end framework with a built-in dark mode great for build site panels.",
35 | lib_link: "https://www.gethalfmoon.com/",
36 | },
37 | {
38 | id: 6,
39 | lib_name: "Primer",
40 | lib_details: "Design, build, and create with GitHub’s design system.",
41 | lib_link: "https://primer.style/",
42 | },
43 | {
44 | id: 7,
45 | lib_name: "AOS",
46 | lib_details: "A toolkit for animate on scrolling around your website with AOS Library.",
47 | lib_link: "https://michalsnik.github.io/aos/",
48 | },
49 | {
50 | id: 8,
51 | lib_name: "Swiper",
52 | lib_details:
53 | "The most modern mobile & web touch slider with amazing transitions & flexible.",
54 | lib_link: "https://swiperjs.com/",
55 | },
56 | {
57 | id: 9,
58 | lib_name: "Animate.css",
59 | lib_details:
60 | "A library of ready-to-use, cross-browser CSS animations for your web projects.",
61 | lib_link: "https://animate.style/",
62 | },
63 | {
64 | id: 10,
65 | lib_name: "AnimXYZ",
66 | lib_details: "A limitless unique & complex animations with first CSS animation toolkit.",
67 | lib_link: "https://animxyz.com/",
68 | },
69 | {
70 | id: 11,
71 | lib_name: "Tasty Hamburgers",
72 | lib_details: "Hamburgers is a collection of tasty CSS-animated hamburger icons & editable.",
73 | lib_link: "https://jonsuh.com/hamburgers/",
74 | },
75 | {
76 | id: 12,
77 | lib_name: "Highlight JS",
78 | lib_details:
79 | "Highlight.js is a code/syntax highlighter for web & have wide range of languages.",
80 | lib_link: "https://highlightjs.org/",
81 | },
82 | {
83 | id: 13,
84 | lib_name: "Slick",
85 | lib_details:
86 | "A simple responsive carousel library with multiple breakpoints for your site.",
87 | lib_link: "https://kenwheeler.github.io/slick/",
88 | },
89 | {
90 | id: 14,
91 | lib_name: "Pattern.css",
92 | lib_details: "A CSS only library to fill your empty background with beautiful patterns.",
93 | lib_link: "https://bansal.io/pattern-css",
94 | },
95 | {
96 | id: 15,
97 | lib_name: "Morphext",
98 | lib_details:
99 | "'Morphing + Text = Morphext', simplest text rotator powered by jQuery and Animate.css",
100 | lib_link: "https://morphext.fyianlai.com/",
101 | },
102 | {
103 | id: 16,
104 | lib_name: "CSShake",
105 | lib_details: "Some CSS classes to move your DOM!",
106 | lib_link: "https://elrumordelaluz.github.io/csshake/",
107 | },
108 | {
109 | id: 17,
110 | lib_name: "Animista",
111 | lib_details: "Animista - CSS Animations on Demand",
112 | lib_link: "https://animista.net/",
113 | },
114 | {
115 | id: 18,
116 | lib_name: "Magic Effects",
117 | lib_details: "Magic Effects Animation for CSS",
118 | lib_link: "https://www.minimamente.com/project/magic/",
119 | },
120 | {
121 | id: 19,
122 | lib_name: "Foundation",
123 | lib_details: "Free, Open source, responsive front-end framework",
124 | lib_link: "https://get.foundation/",
125 | },
126 | {
127 | id: 20,
128 | lib_name: "Bulma",
129 | lib_details: "Free, open source CSS framework based on Flexbox and built with Sass",
130 | lib_link: "https://bulma.io/",
131 | },
132 | {
133 | id: 21,
134 | lib_name: "Semantic UI",
135 | lib_details: "Helps to create beautiful, responsive layouts with themes",
136 | lib_link: "https://semantic-ui.com/",
137 | },
138 | {
139 | id: 22,
140 | lib_name: "Susy",
141 | lib_details: "Responsive layout engine for Sass, with grid, flexbox etc",
142 | lib_link: "https://www.oddbird.net/susy/",
143 | },
144 | {
145 | id: 23,
146 | lib_name: "Pure CSS",
147 | lib_details: "A set of small, responsive CSS modules that you can use in web projects.",
148 | lib_link: "https://purecss.io/",
149 | },
150 | {
151 | id: 24,
152 | lib_name: "Skeleton",
153 | lib_details: "Simple, lightweight and responsive CSS framework (boilerplate)",
154 | lib_link: "http://getskeleton.com/",
155 | },
156 | {
157 | id: 25,
158 | lib_name: "Milligram",
159 | lib_details: "Minimal setup of CSS framework designed for speed and productivity",
160 | lib_link: "https://milligram.io/",
161 | },
162 | {
163 | id: 26,
164 | lib_name: "Tacit",
165 | lib_details: "Provides web design for those who don’t know CSS or have bad taste in design",
166 | lib_link: "https://yegor256.github.io/tacit/",
167 | },
168 | {
169 | id: 27,
170 | lib_name: "Spectre",
171 | lib_details: "Lightweight, responsive and modern CSS framework",
172 | lib_link: "https://picturepan2.github.io/spectre/",
173 | },
174 | {
175 | id: 28,
176 | lib_name: "CSS Wand",
177 | lib_details: "Coutomizable beautiful CSS for Loading and Hover effects",
178 | lib_link: "https://www.csswand.dev/",
179 | },
180 | {
181 | id: 29,
182 | lib_name: "Water.css",
183 | lib_details: "Drop-in collection of CSS styles to make simple websites attractive",
184 | lib_link: "https://www.csswand.dev/",
185 | },
186 | {
187 | id: 30,
188 | lib_name: "Ionic",
189 | lib_details: "Features a full array of CSS utilities and components",
190 | lib_link: "https://ionicframework.com/",
191 | },
192 | {
193 | id: 31,
194 | lib_name: "Voxel.css",
195 | lib_details: "CSS library for 3D elements rendering",
196 | lib_link: "http://voxelcss.com/",
197 | },
198 | {
199 | id: 32,
200 | lib_name: "Fix Carousel",
201 | lib_details: "Pure-CSS animated carousel modeled after Netflix's browse screeng",
202 | lib_link: "https://github.com/anthonykrivonos/flix-carousel",
203 | },
204 | {
205 | id: 33,
206 | lib_name: "Woah.css",
207 | lib_details: "CSS Animation Library for eccentric web developers",
208 | lib_link: "https://github.com/joerez/Woah.css",
209 | },
210 | {
211 | id: 34,
212 | lib_name: "Denali",
213 | lib_details: "Theamable design system with unique visual style",
214 | lib_link: "https://denali.design/",
215 | },
216 | {
217 | id: 35,
218 | lib_name: "RealxCSS",
219 | lib_details: "Minimal styles of components for web or app designs",
220 | lib_link: "https://ziyadsk.github.io/relaxCSS/",
221 | },
222 | {
223 | id: 36,
224 | lib_name: "Tachyons",
225 | lib_details: "Creates fast loading and responsive interfaces with minimal CSS",
226 | lib_link: "https://tachyons.io/",
227 | },
228 | ];
229 |
230 | /* ********************************************************** */
231 | // All Css Libraries Preview Mapping
232 | /* ********************************************************** */
233 |
234 | let cssLibrary = document.querySelector(".libraries");
235 |
236 | Object.values(cssData).map((val) => {
237 | cssLibrary.innerHTML += `
238 |
239 |
246 | `;
247 | });
248 |
--------------------------------------------------------------------------------
/client/img/lang/icon5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/img/lang/icon4.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/js/libraries/clipboard.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * clipboard.js v2.0.8
3 | * https://clipboardjs.com/
4 | *
5 | * Licensed MIT © Zeno Rocha
6 | */
7 | !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return o}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),c=n.n(e);function a(t){try{return document.execCommand(t)}catch(t){return}}var f=function(t){t=c()(t);return a("cut"),t};var l=function(t){var e,n,o,r=1n;n++)e[n][t]()},t.destroyAll=function(){t.invokeAll("destroy")},t.disableAll=function(){t.invokeAll("disable")},t.enableAll=function(){t.Context.refreshAll();for(var e in i)i[e].enabled=!0;return this},t.refreshAll=function(){t.Context.refreshAll()},t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:"default",horizontal:!1,offset:0},t.offsetAliases={"bottom-in-view":function(){return this.context.innerHeight()-this.adapter.outerHeight()},"right-in-view":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){"use strict";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=n.Adapter,this.adapter=new this.Adapter(t),this.key="waypoint-context-"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,o[t.waypointContextKey]=this,i+=1,n.windowContext||(n.windowContext=!0,n.windowContext=new e(window)),this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,o={},n=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?"horizontal":"vertical";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical),i=this.element==this.element.window;t&&e&&!i&&(this.adapter.off(".waypoints"),delete o[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on("resize.waypoints",function(){e.didResize||(e.didResize=!0,n.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on("scroll.waypoints",function(){(!e.didScroll||n.isTouch)&&(e.didScroll=!0,n.requestAnimationFrame(t))})},e.prototype.handleResize=function(){n.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};for(var i in e){var o=e[i],n=o.newScroll>o.oldScroll,r=n?o.forward:o.backward;for(var s in this.waypoints[i]){var a=this.waypoints[i][s];if(null!==a.triggerPoint){var l=o.oldScroll=a.triggerPoint,p=l&&h,u=!l&&!h;(p||u)&&(a.queueTrigger(r),t[a.group.id]=a.group)}}}for(var c in t)t[c].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?n.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?n.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var o=0,n=t.length;n>o;o++)t[o].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),o={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};for(var r in t){var s=t[r];for(var a in this.waypoints[r]){var l,h,p,u,c,d=this.waypoints[r][a],f=d.options.offset,w=d.triggerPoint,y=0,g=null==w;d.element!==d.element.window&&(y=d.adapter.offset()[s.offsetProp]),"function"==typeof f?f=f.apply(d):"string"==typeof f&&(f=parseFloat(f),d.options.offset.indexOf("%")>-1&&(f=Math.ceil(s.contextDimension*f/100))),l=s.contextScroll-s.contextOffset,d.triggerPoint=Math.floor(y+l-f),h=w=s.oldScroll,u=h&&p,c=!h&&!p,!g&&u?(d.queueTrigger(s.backward),o[d.group.id]=d.group):!g&&c?(d.queueTrigger(s.forward),o[d.group.id]=d.group):g&&s.oldScroll>=d.triggerPoint&&(d.queueTrigger(s.forward),o[d.group.id]=d.group)}}return n.requestAnimationFrame(function(){for(var t in o)o[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in o)o[t].refresh()},e.findByElement=function(t){return o[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},n.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},n.Context=e}(),function(){"use strict";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+"-"+this.axis,this.waypoints=[],this.clearTriggerQueues(),o[this.axis][this.name]=this}var o={vertical:{},horizontal:{}},n=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var o=this.triggerQueues[i],n="up"===i||"left"===i;o.sort(n?e:t);for(var r=0,s=o.length;s>r;r+=1){var a=o[r];(a.options.continuous||r===o.length-1)&&a.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints),o=i===this.waypoints.length-1;return o?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=n.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return o[t.axis][t.name]||new i(t)},n.Group=i}(),function(){"use strict";function t(t){this.$element=e(t)}var e=window.jQuery,i=window.Waypoint;e.each(["innerHeight","innerWidth","off","offset","on","outerHeight","outerWidth","scrollLeft","scrollTop"],function(e,i){t.prototype[i]=function(){var t=Array.prototype.slice.call(arguments);return this.$element[i].apply(this.$element,t)}}),e.each(["extend","inArray","isEmptyObject"],function(i,o){t[o]=e[o]}),i.adapters.push({name:"jquery",Adapter:t}),i.Adapter=t}(),function(){"use strict";function t(t){return function(){var i=[],o=arguments[0];return t.isFunction(arguments[0])&&(o=t.extend({},arguments[1]),o.handler=arguments[0]),this.each(function(){var n=t.extend({},o,{element:this});"string"==typeof n.context&&(n.context=t(this).closest(n.context)[0]),i.push(new e(n))}),i}}var e=window.Waypoint;window.jQuery&&(window.jQuery.fn.waypoint=t(window.jQuery)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();
--------------------------------------------------------------------------------
/client/img/lang/icon8.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/client/img/lang/icon3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------