├── .babelrc ├── .eslintrc.json ├── .gitignore ├── .husky └── pre-commit ├── .prettierignore ├── .prettierrc ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── components ├── About │ ├── TeamMember.tsx │ └── card.tsx ├── PageLayout.tsx ├── home │ ├── Events │ │ ├── UpcomingEventCard.tsx │ │ └── UpcomingEvents.tsx │ ├── ExploreProjects │ │ ├── ExploreCard.tsx │ │ └── ExploreProjects.tsx │ ├── HeroSection │ │ ├── HeroSection.tsx │ │ ├── MobileHeroSection.tsx │ │ ├── NavBar.tsx │ │ └── PcHeroSection.tsx │ ├── Open-Source Programs │ │ └── mainOpenSource.tsx │ ├── OpenSourceProfile │ │ └── OpenSourceProfile.tsx │ ├── TeamSection │ │ ├── Team.tsx │ │ └── TeamMember.tsx │ ├── Testimonials │ │ └── testimonials.tsx │ ├── Tutorial Hell │ │ ├── go.tsx │ │ ├── js.tsx │ │ ├── py.tsx │ │ └── tutorial_hell.tsx │ ├── WhatIsClueless │ │ └── WhatIsClueless.tsx │ ├── WorldOfOpenSource │ │ └── WorldOfOpenSource.tsx │ └── lackingskills │ │ └── lackingskills.tsx └── shared │ └── Footer.tsx ├── database ├── eventData.ts ├── membersData.ts └── teamMembers.ts ├── helpers └── helper.ts ├── interfaces └── eventInterface.d.ts ├── lib └── firebaseConfig.ts ├── next-env.d.ts ├── next.config.js ├── package-lock.json ├── package.json ├── pages ├── 404.tsx ├── _app.tsx ├── _document.tsx ├── about-us.tsx ├── api │ └── hello.ts ├── coming-soon.tsx ├── contact-us.tsx ├── faq.tsx ├── index.tsx ├── privacy-policy.tsx └── terms-conditions.tsx ├── postcss.config.js ├── public ├── About │ ├── Bottom │ │ ├── d3.svg │ │ ├── ether.svg │ │ ├── flutter.svg │ │ ├── github.svg │ │ ├── kubernetes.svg │ │ ├── polygon.svg │ │ ├── react.svg │ │ ├── redux.svg │ │ └── vscode.svg │ ├── card.svg │ ├── cardMobile.svg │ ├── greenLine.png │ ├── greenLineMobile.png │ ├── right.png │ └── vision.svg ├── ClueLess Logo with Bg.png ├── ClueLess Logo.png ├── Go-Logo_Aqua.svg ├── Gssoc.png ├── LFX.png ├── LandingPage │ ├── 404 │ │ └── 404-img.png │ ├── Contact │ │ └── contact.png │ ├── HeroSection │ │ ├── Frame 3.svg │ │ └── hero_line.png │ ├── OpenSource │ │ ├── Frame.png │ │ ├── group111.png │ │ ├── program.png │ │ └── program2.png │ ├── Shade │ │ └── shade.png │ ├── Testimonials │ │ └── testimonials.svg │ └── thanks │ │ └── thanks-img.png ├── MLH.png ├── comingSoon │ ├── globe.png │ ├── img1.png │ └── load.png ├── faq1.png ├── faq2.png ├── favicon.ico ├── flutter.webp ├── golang.png ├── golang.svg ├── line1.png ├── line2.png ├── next.svg ├── open-source-programs.svg ├── path.png ├── path2.png ├── pattern.svg ├── test.png ├── testimonial │ ├── 0.png │ ├── 1.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ └── 6.png ├── thirteen.svg ├── true-design.png ├── true-design2.png └── vercel.svg ├── styles ├── globals.css └── theme.ts ├── tailwind.config.js └── tsconfig.json /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["next/babel"], 3 | "plugins": [] 4 | } 5 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["next"], 3 | "rules": { 4 | "react/no-unescaped-entities": 0 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | .pnpm-debug.log* 27 | 28 | # local env files 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | npm run pre-commit 5 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | .git 2 | .next 3 | dist 4 | node_modules -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "trailingComma": "es5", 3 | "tabWidth": 2, 4 | "semi": true, 5 | "singleQuote": true 6 | } 7 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | - Demonstrating empathy and kindness toward other people 21 | - Being respectful of differing opinions, viewpoints, and experiences 22 | - Giving and gracefully accepting constructive feedback 23 | - Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | - Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | - The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | - Trolling, insulting or derogatory comments, and personal or political attacks 33 | - Public or private harassment 34 | - Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | - Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | . 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. 129 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to setup ClueLess in your local system? 2 | 3 | Here are the exact steps you need to follow to run ClueLess in your local system! 4 | 5 | ## 1. Clone Repo or Download Files 6 | 7 | So, first of all you need to do is clone the [Clueless-Community/clueless-official-website](https://github.com/Clueless-Community/clueless-official-website) GitHub repository or you can also download the files. 8 | 9 | If you don't know how to clone or where to download the code the watch this video. 10 | 11 | [How to Clone a GitHub Repo](https://www.youtube.com/watch?v=CKcqniGu3tA) 12 | [Blog on the same topic, official GitHub Docs](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) 13 | 14 | Or you can run this code in your PC/Laptop terminal 15 | 16 | ``` 17 | git clone https://github.com/Clueless-Community/clueless-official-website.git 18 | ``` 19 | 20 | ## 2. Installing all npm packages 21 | 22 | Then you need to navigate to the directory and run the following code. This will install all the dependencies you need. 23 | 24 | ``` 25 | npm install 26 | ``` 27 | 28 | ## 3. Setup helper 29 | 30 | Before setting up any API keys you need to change the helper, so that it makes request to your localhost. 31 | 32 | Go to ./helpers/template.ts . 33 | 34 | Remove everything and copy paste this code snippet. 35 | 36 | ``` 37 | export const template = { 38 | templateString : "http://localhost:3000" 39 | } 40 | ``` 41 | 42 | **Note** : You can have different localhost other than 3000, use that in that case. 43 | 44 | ## Setting up API Keys. 45 | 46 | This is the most important part. There are Authentication, Database, Filter & search and Map APIs that you need to setup. 47 | 48 | If you are assigned an issue mail us at **official.cluelesscommunity@gmail.com** with the PR link and your gitHub ID we will send you the credentials within 2 - 3 hours. 49 | 50 | Create **.env.local** file in the root directory with the credentials you receive. 51 | 52 | ## How can i contribute? 53 | 54 | You can contribute to this project by suggesting an enhancement, reporting a bug, and fixing documentation. Here's how to do it: 55 | 56 | - Go to [issues](https://github.com/Clueless-Community/clueless-official-website/issues/new/choose) page 57 | - Select the issue you would like to open 58 | - Use a descriptive title. It should take this format "[BUG]: Title" 59 | - Add a description explaining the issue. You should give a detailed explanation. For example, the button on the website has a bright color which makes it hard to see the text in it. 60 | - Add screenshots if available 61 | - Add a possible solution. 62 | 63 | **Never push credentials to GitHub** 64 | 65 | ## Pushing changes or making changes 66 | 67 | For pushing your updates make a new branch in this format. 68 | 69 | **(your_name)/(functionality_name)** 70 | 71 | And also describe a bit what changes made and try to attach screenshots. 72 | 73 | Make sure that you push your PR into the **dev** branch instead of **main** 74 | 75 | ## Having problem? 76 | 77 | If you face any problem you can mail us at **official.cluelesscommunity@gmail.com**. 78 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Clueless Community 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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | #

What is Cluelessgif

4 | 5 | ###

Clueless is a developer community which builds developer tools with the power of open-source. We believe in the vision “Learn and Grow” and encourage & guide enthusiasts to dive deep into the world of open-source.

6 | 7 |
8 | 9 | [![image](https://user-images.githubusercontent.com/98400348/233864185-8fd71e25-b5a6-41c9-81de-cd5ee208ab48.png)](https://www.clueless.live/) 10 | 11 | #

Want to contribute?gif

12 | 13 | [gif](https://github.com/Clueless-Community/clueless-official-website) 14 | 15 | 16 | 17 | ###

If you are willing to contribute, please check the guide to local system setup [here on CONTRIBUTING.md](https://github.com/Clueless-Community/clueless-official-website/blob/main/CONTRIBUTING.md).

18 | 19 | Don't forget to check the [issue](https://github.com/Clueless-Community/clueless-official-website/issues) section where we have already raised some issues for you to work on. 20 | 21 | # What do we provide?gif 22 | 23 | - ## Resources 24 | 25 | The Internet is flooded with so many resources that can make one confused and clueless. So we, the Clueless Community provide the best, filtered, and curated resources like YouTube videos, GitHub repositories, websites, cheatsheets, etc! You can check our resources page [here](https://clueless-resources.super.site/resources) 26 | 27 | [![image](https://user-images.githubusercontent.com/98400348/233865701-de5ff742-cc23-4eb7-b7b3-6e1ba2c99826.png)](https://clueless-resources.super.site/resources) 28 | 29 | - ## Discord Communitygif 30 | We have an amazing Discord Community, where separate channels are created for different topics like web development, app development, web3, etc where you can use these respective channels to query and help others. We try to keep you updated with the latest opportunities, jobs, and hackathons, and share useful resources too. 31 | 32 | [![image](https://user-images.githubusercontent.com/98400348/233865943-18c83e9d-ca39-44c6-b6b3-387e3900d0e6.png)](https://discord.gg/zrVMjGW8sB) 33 | 34 | ## Click [here](https://discord.gg/zrVMjGW8sB) to join 🚀 35 | 36 | # Projects we are working on gif 37 | 38 | - ## SeamLess UI 39 | The next gen UI made with simple HTML and Tailwind CSS. It's compatible with simple HTML, CSS static website or a React, Vue, Angular or Next.js Complex app. Zero JS and no-plugins installed. 40 | 41 | Click [here](https://github.com/Clueless-Community/seamless-ui) to check this amazing repository. All the changes and contributions are appreciated. 42 | 43 | - ## Datasets 44 | A GitHub repository where we have collected datasets like tech stacks, cities, colleges in India, Spotify stats, etc in different forms like arrays, JSON, and CSV which you can use for your next project. 45 | 46 | Click [here](https://github.com/Clueless-Community/Datasets) to check this amazing repository. All the changes and contributions are appreciated. 47 | 48 | - ## College API 49 | An API that gets you the list of Indian colleges and their details like city, state, and NIRF ranks. You can even filter out colleges by city and state. 50 | 51 | Check this project [this](https://github.com/Clueless-Community/collegeAPI) here! 52 | 53 | - ## Spectrum UI 54 | A collection of flutter UI components 55 | 56 | Click [here](https://github.com/Clueless-Community/Spectrum-UI) to check this amazing repository. All the changes and contributions are appreciated. 57 | 58 |

Project maintainers

59 | 60 | 61 | 68 | 75 | 76 |
62 | 63 | Debajyoti Saha 64 |
65 | Debajyoti Saha 66 |
67 |
69 | 70 | Mukesh Kuiry 71 |
72 | Mukesh Kuiry 73 |
74 |
77 | -------------------------------------------------------------------------------- /components/About/TeamMember.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import teamMembers from '../../database/teamMembers'; 3 | import Card from './card'; 4 | const TeamMember = () => { 5 | return ( 6 |
7 |
8 |
9 |

10 | Team Members 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 | {/* Blur Effect */} 41 |
48 |
49 |
50 |
51 |
52 | {teamMembers.map((item, index) => { 53 | return ( 54 |
55 | 63 |
64 | ); 65 | })} 66 |
67 |
68 |
69 | flutter 74 | kubernetes 79 | Redux 84 | ether 89 | Github 94 | react 99 | vs code 104 | d3js 109 | polygon 114 | {/* Blur Effect */} 115 |
122 | {/* Blur Effect */} 123 |
130 | {/* Blur Effect */} 131 |
138 | {/* Blur Effect */} 139 |
146 |
147 |
148 |
149 | ); 150 | }; 151 | 152 | export default TeamMember; 153 | -------------------------------------------------------------------------------- /components/About/card.tsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable @next/next/no-img-element */ 2 | import Link from 'next/link'; 3 | import React from 'react'; 4 | import { AiFillGithub, AiOutlineTwitter } from 'react-icons/ai'; 5 | import { FaLinkedinIn } from 'react-icons/fa'; 6 | type cardProps = { 7 | name: string; 8 | photo_url: string; 9 | designation: string; 10 | linkedin_url: string; 11 | github_url: string; 12 | twitter_url: string; 13 | }; 14 | const Card: React.FC = ({ 15 | name, 16 | photo_url, 17 | designation, 18 | linkedin_url, 19 | github_url, 20 | twitter_url, 21 | }) => { 22 | return ( 23 |
24 | 29 |
30 |
31 |

{name}

32 |

{designation}

33 |
34 |
35 | 40 | 41 | 42 | 47 | 48 | 49 | 54 | 55 | 56 |
57 |
58 |
59 | ); 60 | }; 61 | 62 | export default Card; 63 | -------------------------------------------------------------------------------- /components/PageLayout.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import NavBar from './home/HeroSection/NavBar'; 3 | import Footer from './shared/Footer'; 4 | interface Props { 5 | children: JSX.Element[] | JSX.Element; 6 | } 7 | const PageLayout = ({ children }: Props) => { 8 | return ( 9 |
10 | 11 |
12 | {children} 13 |
14 |
15 |
16 | ); 17 | }; 18 | 19 | export default PageLayout; 20 | -------------------------------------------------------------------------------- /components/home/Events/UpcomingEventCard.tsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable @next/next/no-img-element */ 2 | import React from 'react'; 3 | import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos'; 4 | 5 | interface dataProps { 6 | eventposter: string; 7 | heading: string; 8 | Time: string; 9 | instructorOrspeaker: string; 10 | desc: string; 11 | eventId: string; 12 | date: string; 13 | } 14 | 15 | const UpcomingEventCard: React.FC = ({ 16 | eventposter, 17 | heading, 18 | Time, 19 | instructorOrspeaker, 20 | desc, 21 | eventId, 22 | date, 23 | }) => { 24 | return ( 25 |
26 |
27 | event poster 32 |
33 |
34 |
35 |
36 |

37 | {' '} 38 | {heading} 39 |

40 |
43 |
46 |

{desc}

47 |
48 |
51 |

52 | Timeline : 53 |

54 |

55 | {date} 56 |

57 |
58 |
59 |

Time :

60 |

61 | {Time} 62 |

63 |
64 |
65 |
66 |
67 |

68 | Instructor / speaker : 69 |

70 |

71 | {instructorOrspeaker} 72 |

73 |
74 |
75 |
76 |
77 |
78 |
79 | {/* */} 80 | 83 | {/* */} 84 |
85 |
86 | ); 87 | }; 88 | 89 | export default UpcomingEventCard; 90 | -------------------------------------------------------------------------------- /components/home/Events/UpcomingEvents.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import eventData from '../../../database/eventData'; 3 | import UpcomingEventCard from './UpcomingEventCard'; 4 | 5 | const UpcomingEvents = () => { 6 | return ( 7 |
8 |
9 |

10 | Ongoing Events{' '} 11 |

12 |
13 | {eventData.map((data: any, i: number) => { 14 | return ( 15 |
16 | 25 |
26 | ); 27 | })} 28 |
29 |
30 | ); 31 | }; 32 | 33 | export default UpcomingEvents; 34 | -------------------------------------------------------------------------------- /components/home/ExploreProjects/ExploreCard.tsx: -------------------------------------------------------------------------------- 1 | import Image from 'next/image'; 2 | import { FaAngleRight } from 'react-icons/fa'; 3 | 4 | function ExploreCard(props: any) { 5 | return ( 6 |
7 |
8 |
9 |
10 |

11 | {props?.data?.title} 12 |

13 |
14 | {props?.data?.tags.map((item: any, index: any) => ( 15 |
19 | {item} 20 |
21 | ))} 22 |
23 |
24 |
25 | Logo 32 |
33 |
34 |
35 |
36 | {props?.data?.desc} 37 |
38 |
39 | 40 |
41 | 42 |
43 |
44 |
45 | ); 46 | } 47 | 48 | export default ExploreCard; 49 | -------------------------------------------------------------------------------- /components/home/ExploreProjects/ExploreProjects.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ExploreCard from './ExploreCard'; 3 | 4 | function ExploreProjects() { 5 | const contentData = [ 6 | { 7 | title: 'ClueLess Official Website', 8 | tags: ['HTML', 'Tailwind CSS'], 9 | desc: 'This is Clueless official website where you can make your developer profile as well as meet new people across the world.', 10 | repoURL: 11 | 'https://github.com/Clueless-Community/clueless-official-website', 12 | }, 13 | { 14 | title: 'SeamLess UI', 15 | tags: ['HTML', 'Tailwind CSS'], 16 | desc: 'The next gen UI made with simple HTML and Tailwind CSS', 17 | repoURL: 'https://github.com/Clueless-Community/seamless-ui', 18 | }, 19 | { 20 | title: 'Spectrum UI', 21 | tags: ['Flutter', 'Tailwind CSS'], 22 | desc: 'A collection of flutter UI components', 23 | repoURL: 'https://github.com/Clueless-Community/Spectrum-UI', 24 | }, 25 | ]; 26 | 27 | return ( 28 |
29 |
30 | {/* Heading Part */} 31 |
32 | {/*

33 | Explore Projects to contribute 34 |

*/} 35 |

36 | Explore Projects to contribute 37 |

38 | 43 | 44 | 45 |
46 | 47 | {/* Cards */} 48 |
49 |
50 | 51 |
52 |
53 | 54 |
55 |
56 | 57 | {/* Blur Effect */} 58 |
65 | 66 | {/* Cards */} 67 |
68 |
69 | 74 |
75 |
76 | 77 |
78 |
79 |
80 | 81 | {/* Connector Mobile */} 82 |
83 | line3 84 |
85 |
86 |
87 | ); 88 | } 89 | 90 | export default ExploreProjects; 91 | -------------------------------------------------------------------------------- /components/home/HeroSection/HeroSection.tsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable @next/next/no-img-element */ 2 | import React from 'react'; 3 | import { NextPage } from 'next'; 4 | import MobileHeroSection from './MobileHeroSection'; 5 | import PcHeroSection from './PcHeroSection'; 6 | 7 | export function HeroSection() { 8 | return ( 9 | <> 10 |
11 | 12 |
13 |
14 | 15 |
16 | 17 | ); 18 | } 19 | 20 | export default HeroSection; 21 | -------------------------------------------------------------------------------- /components/home/HeroSection/MobileHeroSection.tsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable @next/next/no-img-element */ 2 | import Link from 'next/link'; 3 | import createGlobe from 'cobe'; 4 | import React, { useEffect, useRef, useState } from 'react'; 5 | import { Box } from '@mui/material'; 6 | 7 | export function HeroSection() { 8 | const canvasRef = useRef(null); 9 | const pointerInteracting = useRef(null); 10 | 11 | useEffect(() => { 12 | let phi = 0; 13 | let width = 0; 14 | const onResize = () => 15 | canvasRef.current && (width = canvasRef.current.offsetWidth); 16 | window.addEventListener('resize', onResize); 17 | onResize(); 18 | const globe = createGlobe(canvasRef.current as HTMLCanvasElement, { 19 | devicePixelRatio: 2, 20 | width: 1460, 21 | height: 1460, 22 | phi: 0, 23 | theta: 0, 24 | dark: 1, 25 | diffuse: 1.2, 26 | mapSamples: 16000, 27 | mapBrightness: 6, 28 | opacity: 0.9, 29 | baseColor: [1, 1, 1], 30 | markerColor: [0.1, 0.3, 0.1], 31 | glowColor: [1, 1, 1], 32 | scale: 1.12, 33 | markers: [ 34 | { location: [37.7595, -122.4367], size: 0.01 }, 35 | { location: [40.7128, -74.006], size: 0.1 }, 36 | { location: [26.732311, 88.410286], size: 0.2 }, 37 | ], 38 | onRender: (state) => { 39 | if (!pointerInteracting.current) { 40 | phi += 0.005; 41 | } 42 | if (window.screen.width < 600) { 43 | phi = 1.5; 44 | } 45 | state.phi = phi; 46 | state.width = width * 2; 47 | state.height = width * 2; 48 | }, 49 | }); 50 | 51 | setTimeout(() => (canvasRef.current!.style.opacity = '1')); 52 | return () => globe.destroy(); 53 | }, []); 54 | return ( 55 |
59 | 60 |

61 | Clueless
62 | Community. 63 |

64 |
65 |

66 | Learn, Grow. 67 |

68 |
69 | 74 | 89 | 90 | 93 |
94 |
95 |
96 | 102 |
103 | 112 |
113 | 114 | 120 | 125 |
126 | ); 127 | } 128 | 129 | export default HeroSection; 130 | -------------------------------------------------------------------------------- /components/home/HeroSection/NavBar.tsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable @next/next/no-img-element */ 2 | import React, { useEffect, useState } from 'react'; 3 | import { Disclosure } from '@headlessui/react'; 4 | import { Bars3Icon, XMarkIcon } from '@heroicons/react/24/outline'; 5 | import Link from 'next/link'; 6 | 7 | const NavBar: React.FC = () => { 8 | const [isMobile, setIsMobile] = useState(false); 9 | 10 | useEffect(() => { 11 | if (window.screen.width < 1024) { 12 | setIsMobile(true); 13 | } 14 | }, []); 15 | 16 | const navigation = [ 17 | { name: 'Home', href: '/#hero', current: true }, 18 | { name: 'About Us', href: '/about-us', current: false }, 19 | { name: 'Open Source Projects', href: '/#projects', current: false }, 20 | { 21 | name: 'Resources', 22 | href: 'https://clueless-resources.super.site/resources', 23 | current: false, 24 | }, 25 | ]; 26 | 27 | function classNames(...classes: string[]) { 28 | return classes.filter(Boolean).join(' '); 29 | } 30 | 31 | return ( 32 | <> 33 |
34 | 35 | {({ open }) => ( 36 | <> 37 |
38 | {/* Menu Icon for Mobile */} 39 |
40 | 41 | {open ? ( 42 | 53 | {/* Profile Image */} 54 | {/* */} 61 |
62 |
63 | {/* Hero Logo */} 64 | 65 |
66 | {ClueLogo('white')} 67 |
68 |

Clueless

69 |
70 |
71 | 72 | {/* Rest Part */} 73 |
74 | {/* Tabs */} 75 |
76 | {navigation.map((item) => ( 77 | 88 | {item.name} 89 | 90 | ))} 91 |
92 | {/* Profile Image */} 93 | {/*
94 | 101 |
*/} 102 |
103 |
104 |
105 | 106 | 107 |
108 | {navigation.map((item) => ( 109 | 121 | {item.name} 122 | 123 | ))} 124 |
125 |
126 | 127 | )} 128 |
129 |
130 | 131 | ); 132 | }; 133 | 134 | const ClueLogo = (color: string) => { 135 | return ( 136 |
137 | 143 | 147 | 148 |
149 | ); 150 | }; 151 | 152 | export default NavBar; 153 | -------------------------------------------------------------------------------- /components/home/HeroSection/PcHeroSection.tsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable @next/next/no-img-element */ 2 | import Link from 'next/link'; 3 | import createGlobe from 'cobe'; 4 | import React, { useEffect, useRef, useState } from 'react'; 5 | import { Box } from '@mui/material'; 6 | import { useSpring } from '@react-spring/web'; 7 | 8 | export function HeroSection() { 9 | const canvasRef = useRef(null); 10 | const pointerInteracting = useRef(null); 11 | const pointerInteractionMovement = useRef(0); 12 | 13 | const [{ r }, api] = useSpring(() => ({ 14 | r: 0, 15 | config: { 16 | mass: 1, 17 | tension: 280, 18 | friction: 40, 19 | precision: 0.001, 20 | }, 21 | })); 22 | useEffect(() => { 23 | let phi = 0; 24 | let width = 0; 25 | const onResize = () => 26 | canvasRef.current && (width = canvasRef.current.offsetWidth); 27 | window.addEventListener('resize', onResize); 28 | onResize(); 29 | const globe = createGlobe(canvasRef.current as HTMLCanvasElement, { 30 | devicePixelRatio: 2, 31 | width: 1460, 32 | height: 1460, 33 | phi: 0, 34 | theta: 0, 35 | dark: 1, 36 | diffuse: 1.2, 37 | mapSamples: 15500, 38 | mapBrightness: 6, 39 | opacity: 0.9, 40 | baseColor: [1, 1, 1], 41 | markerColor: [0.1, 0.3, 0.1], 42 | glowColor: [1, 1, 1], 43 | scale: 1.12, 44 | markers: [ 45 | { location: [37.7595, -122.4367], size: 0.01 }, 46 | { location: [40.7128, -74.006], size: 0.1 }, 47 | { location: [26.732311, 88.410286], size: 0.2 }, 48 | ], 49 | onRender: (state) => { 50 | if (!pointerInteracting.current) { 51 | phi += 0.002; 52 | } 53 | if (window.screen.width < 600) { 54 | phi = 1.5; 55 | } 56 | state.phi = phi + r.get(); 57 | state.width = width * 2; 58 | state.height = width * 2; 59 | }, 60 | }); 61 | 62 | setTimeout(() => (canvasRef.current!.style.opacity = '1')); 63 | return () => globe.destroy(); 64 | }, [r]); 65 | return ( 66 |
70 | 71 |

72 | Clueless
73 | Community. 74 |

75 | 114 |
115 | 121 |
122 | { 125 | if (canvasRef.current != null) { 126 | canvasRef.current.style.cursor = 'grabbing'; 127 | } 128 | pointerInteracting.current = 129 | e.clientX - pointerInteractionMovement.current; 130 | }} 131 | onPointerUp={() => { 132 | pointerInteracting.current = null; 133 | if (canvasRef.current != null) { 134 | canvasRef.current.style.cursor = 'grab'; 135 | } 136 | }} 137 | onPointerOut={() => { 138 | pointerInteracting.current = null; 139 | if (canvasRef.current != null) { 140 | canvasRef.current.style.cursor = 'grab'; 141 | } 142 | }} 143 | onMouseMove={(e) => { 144 | if (pointerInteracting.current !== null) { 145 | const delta = e.clientX - pointerInteracting.current; 146 | pointerInteractionMovement.current = delta; 147 | api.start({ 148 | r: delta / 200, 149 | }); 150 | } 151 | }} 152 | onTouchMove={(e) => { 153 | if (pointerInteracting.current !== null && e.touches[0]) { 154 | const delta = e.touches[0].clientX - pointerInteracting.current; 155 | pointerInteractionMovement.current = delta; 156 | api.start({ 157 | r: delta / 100, 158 | }); 159 | } 160 | }} 161 | style={{ 162 | cursor: 'grab', 163 | contain: 'layout paint size', 164 | opacity: 0, 165 | transition: 'opacity 1s ease', 166 | }} 167 | className="w-[100%] h-[100%] 2xl:mt-10" 168 | /> 169 |
170 | 171 | 177 | 182 |
183 | ); 184 | } 185 | 186 | export default HeroSection; 187 | -------------------------------------------------------------------------------- /components/home/Open-Source Programs/mainOpenSource.tsx: -------------------------------------------------------------------------------- 1 | // Open-Source page 2 | /* eslint-disable @next/next/no-img-element */ 3 | import React from 'react'; 4 | import Link from 'next/link'; 5 | 6 | function OpenSourcePrograms() { 7 | return ( 8 |
9 |
10 |
11 |

12 | 13 | Learn about some biggest 14 | {' '} 15 | Open-source Programs 16 |

17 | 18 | 19 | 20 |
21 |
22 | 27 | 32 | 33 |
34 |
35 |
36 |
37 | line3 38 |
39 |
40 | ); 41 | } 42 | 43 | export default OpenSourcePrograms; 44 | -------------------------------------------------------------------------------- /components/home/OpenSourceProfile/OpenSourceProfile.tsx: -------------------------------------------------------------------------------- 1 | import Link from 'next/link'; 2 | import React from 'react'; 3 | import { MdNavigateNext } from 'react-icons/md'; 4 | 5 | const opensrc = () => { 6 | return ( 7 |
8 |
9 |
10 |
11 |

12 | Your{"'s"} truly 13 |

14 |

15 | Open-source Profile 16 |

17 |
18 |

19 | Built with the vision to encourage open-source enthusiasts! 20 |

21 |

22 |

23 | Built with the vision to encourage open-source enthusiasts! Built 24 | with the vision to encourage open-source enthusiasts! 25 |

26 |
27 |
28 | 29 |
30 |

Build your Profile

31 | 32 |
33 | 34 |
35 |
36 | 37 |
38 |
39 | 40 |
41 | 46 | 51 |
52 |
53 | ); 54 | }; 55 | 56 | export default opensrc; 57 | -------------------------------------------------------------------------------- /components/home/TeamSection/Team.tsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable @next/next/no-img-element */ 2 | import React from 'react'; 3 | 4 | type cardProps = { 5 | photo_url: string; 6 | }; 7 | const Card: React.FC = ({ photo_url }) => { 8 | return ( 9 | 10 | ); 11 | }; 12 | 13 | export default Card; 14 | -------------------------------------------------------------------------------- /components/home/TeamSection/TeamMember.tsx: -------------------------------------------------------------------------------- 1 | // Swiper JS is used for this component 2 | /* eslint-disable @next/next/no-img-element */ 3 | 4 | import Team from './Team'; 5 | import 'swiper/css'; 6 | import 'swiper/css/effect-coverflow'; 7 | import { EffectCoverflow, Autoplay, Mousewheel, Keyboard } from 'swiper'; 8 | 9 | import teamMembers from '../../../database/teamMembers'; 10 | import { Swiper, SwiperSlide } from 'swiper/react'; 11 | 12 | // Import Swiper styles 13 | import 'swiper/css'; 14 | import 'swiper/css/virtual'; 15 | 16 | export default function TeamMember() { 17 | return ( 18 |
19 |
20 |
21 |

22 | Team behind this 23 |

24 | {/* for large Screen */} 25 |
26 | = 640px 45 | 640: { 46 | // width: 640, 47 | slidesPerView: 4, 48 | }, 49 | // when window width is >= 768px 50 | 768: { 51 | // width: 768, 52 | slidesPerView: 9, 53 | }, 54 | }} 55 | loop={true} 56 | speed={2500} 57 | autoplay={{ 58 | delay: 200, 59 | disableOnInteraction: false, 60 | reverseDirection: true, 61 | waitForTransition: true, 62 | }} 63 | modules={[Autoplay, EffectCoverflow, Mousewheel, Keyboard]} 64 | className="mySwiper hidden" 65 | > 66 | {teamMembers.map((item, index) => ( 67 | 71 | 72 | 73 | ))} 74 | 75 |
76 | 77 | {/* For Small Screen */} 78 |
79 | = 640px 98 | 640: { 99 | // width: 640, 100 | slidesPerView: 4, 101 | }, 102 | // when window width is >= 768px 103 | 768: { 104 | // width: 768, 105 | slidesPerView: 7, 106 | }, 107 | }} 108 | loop={true} 109 | speed={2500} 110 | autoplay={{ 111 | delay: 1000, 112 | disableOnInteraction: false, 113 | }} 114 | modules={[Autoplay, EffectCoverflow, Mousewheel, Keyboard]} 115 | className="mySwiper hidden" 116 | > 117 | {teamMembers.map((item, index) => ( 118 | 122 | 123 | 124 | ))} 125 | 126 |
127 |
128 |
129 | ); 130 | } 131 | -------------------------------------------------------------------------------- /components/home/Testimonials/testimonials.tsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable @next/next/no-img-element */ 2 | import React from 'react'; 3 | 4 | import { TwitterTweetEmbed } from 'react-twitter-embed'; 5 | import Slider from 'react-slick'; 6 | import 'slick-carousel/slick/slick.css'; 7 | import 'slick-carousel/slick/slick-theme.css'; 8 | const Testimonial = () => { 9 | var settings = { 10 | dots: true, 11 | infinite: true, 12 | speed: 500, 13 | autoplay: true, 14 | autoplaySpeed: 2000, 15 | slidesToShow: 4, 16 | slidesToScroll: 1, 17 | initialSlide: 0, 18 | responsive: [ 19 | { 20 | breakpoint: 1300, 21 | settings: { 22 | slidesToShow: 3, 23 | slidesToScroll: 1, 24 | infinite: true, 25 | dots: true, 26 | }, 27 | }, 28 | { 29 | breakpoint: 1024, 30 | settings: { 31 | slidesToShow: 2, 32 | slidesToScroll: 1, 33 | infinite: true, 34 | dots: true, 35 | }, 36 | }, 37 | { 38 | breakpoint: 600, 39 | settings: { 40 | slidesToShow: 1, 41 | slidesToScroll: 1, 42 | initialSlide: 1, 43 | }, 44 | }, 45 | { 46 | breakpoint: 480, 47 | settings: { 48 | slidesToShow: 1, 49 | slidesToScroll: 1, 50 | }, 51 | }, 52 | ], 53 | }; 54 | return ( 55 |
56 |
57 |

Testimonial

58 |
59 |
60 | 61 |
62 | 66 |
67 |
68 | 72 |
73 | 74 |
75 | 79 |
80 | 81 |
82 | 86 |
87 | 88 |
89 | 93 |
94 |
95 |
96 |
97 | ); 98 | }; 99 | 100 | export default Testimonial; 101 | -------------------------------------------------------------------------------- /components/home/Tutorial Hell/go.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { BsGithub } from 'react-icons/bs'; 3 | import { motion } from 'framer-motion'; 4 | 5 | const Go = () => { 6 | return ( 7 |
8 |
9 |

10 | package main 11 |

12 |

13 | func 14 | Memoize 15 | (fn 16 | func 17 | (int) int) 18 | func 19 | (int) int
{ 20 |

21 |
22 | 26 |
27 |
28 |

29 | cache 30 | := 31 | make( 32 | map 33 | [int]int) 34 |

35 |
36 |
37 |

38 | return func 39 | (n int) int { 40 |

41 |
42 |
43 |

44 | if 45 | v, ok 46 | := 47 | cache[n]; ok { 48 |

49 |
50 |
51 |

52 | return v 53 |

54 |
55 |
56 |

}

57 |
58 |
59 |

60 | cache[n] 61 | = 62 | fn 63 | (n) 64 |

65 |
66 |
67 |

68 | return 69 | cache[n] 70 |

71 |
72 |
73 |

}

74 |
75 |
76 |

}

77 |
78 |
79 |
80 | 81 |

Copilot

82 |
83 |
84 |
85 | ); 86 | }; 87 | 88 | export default Go; 89 | -------------------------------------------------------------------------------- /components/home/Tutorial Hell/js.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { BsGithub } from 'react-icons/bs'; 3 | import { motion } from 'framer-motion'; 4 | 5 | const Js = () => { 6 | return ( 7 |
8 |
9 |

10 | const seconds{' '} 11 | = 3600{' '} 12 |

13 |

14 | const 15 | minutes 16 | = 17 | seconds 18 | / 60 19 |

20 |
21 | 25 |
26 |
27 |

28 | const 29 | hours 30 | = 31 | minutes 32 | / 60 33 |

34 |
35 |
36 |

37 | const 38 | days 39 | = 40 | hours 41 | / 24 42 |

43 |
44 |
45 |

46 | const 47 | weeks 48 | = 49 | days 50 | / 7 51 |

52 |
53 |
54 |

55 | const 56 | months 57 | = 58 | days 59 | / 30 60 |

61 |
62 |
63 |

64 | const 65 | years 66 | = 67 | months 68 | / 12 69 |

70 |
71 |
72 |
73 | 74 |

Copilot

75 |
76 |
77 |
78 | ); 79 | }; 80 | 81 | export default Js; 82 | -------------------------------------------------------------------------------- /components/home/Tutorial Hell/py.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { BsGithub } from 'react-icons/bs'; 3 | import { motion } from 'framer-motion'; 4 | // import Typed from 'react-typed'; 5 | 6 | const Py = () => { 7 | return ( 8 |
9 |
10 |

11 | import matplotlib.pyplot{' '} 12 | as plt

13 |

14 |

15 |

16 |

17 |

18 | def 19 | draw_scatterplot 20 | (x_values, y_values): 21 |

22 |
23 | 27 |
28 |
29 |

30 | plt.scatter 31 | (x_values, y_values, s=20) 32 |

33 |
34 |
35 |

36 | plt.title( 37 | “Scatter Plot” 38 | ) 39 |

40 |
41 |
42 |

43 | plt.xlabel( 44 | “x-values”) 45 |

46 |
47 |
48 |

49 | plt.ylabel( 50 | “y-values”) 51 |

52 |
53 |
54 |

55 | plt.show() 56 |

57 |
58 |
59 |
60 | 61 |

Copilot

62 |
63 |
64 |
65 | ); 66 | }; 67 | 68 | export default Py; 69 | -------------------------------------------------------------------------------- /components/home/Tutorial Hell/tutorial_hell.tsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { useState } from 'react'; 3 | import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos'; 4 | import LoopIcon from '@mui/icons-material/Loop'; 5 | import { FaPython } from 'react-icons/fa'; 6 | import { IoLogoJavascript } from 'react-icons/io'; 7 | import { SiGoland } from 'react-icons/si'; 8 | import Py from './py'; 9 | import Js from './js'; 10 | import Go from './go'; 11 | import Link from 'next/link'; 12 | 13 | const TutorialHell = () => { 14 | const [active1, setActive1] = useState(true); 15 | const [active2, setActive2] = useState(false); 16 | const [active3, setActive3] = useState(false); 17 | 18 | const ActivateButton1 = () => { 19 | if (active1 === false) { 20 | setActive1(!active1); 21 | } 22 | if (active2 === true) { 23 | setActive2(!active2); 24 | } 25 | if (active3 === true) { 26 | setActive3(!active3); 27 | } 28 | }; 29 | 30 | const ActivateButton2 = () => { 31 | if (active2 === false) { 32 | setActive2(!active2); 33 | } 34 | if (active1 === true) { 35 | setActive1(!active1); 36 | } 37 | if (active3 === true) { 38 | setActive3(!active3); 39 | } 40 | }; 41 | 42 | const ActivateButton3 = () => { 43 | if (active3 === false) { 44 | setActive3(!active3); 45 | } 46 | if (active1 === true) { 47 | setActive1(!active1); 48 | } 49 | if (active2 === true) { 50 | setActive2(!active2); 51 | } 52 | }; 53 | 54 | const ReplayButton = () => { 55 | if (active1 === true) { 56 | setActive1(false); 57 | setTimeout(() => setActive1(true), 50); 58 | } 59 | if (active2 === true) { 60 | setActive2(false); 61 | setTimeout(() => setActive2(true), 50); 62 | } 63 | if (active3 === true) { 64 | setActive3(false); 65 | setTimeout(() => setActive3(true), 50); 66 | } 67 | }; 68 | 69 | return ( 70 |
71 |
72 |
73 |

74 | Get out of tutorial hell and start
{' '} 75 | contributing{' '} 76 |

77 |
78 |
79 |
80 | 95 | 110 | 125 |
126 | 127 |
128 |
129 |

134 | 1 135 |

136 |

2

137 |

3

138 |

4

139 |

5

140 |

6

141 |

7

142 |

8

143 |

9

144 |

10

145 |

11

146 |

147 | 12 148 |

149 |
150 | 151 |
152 | 153 |
154 |
155 | 156 |
157 |
158 | 159 |
160 |
161 | 162 |
163 | 174 |
175 |
176 |
177 |
178 |

179 | Don't just always sit before your desktop watching Tutorials. 180 | Get out of Tutorial Hell! 181 |

182 |

183 | Contribute to our beginner-friendly repositories and gain 184 | practical experience on the technology you are eyeing to master. 185 |

186 |
187 |
188 | 189 | 195 | 196 |
197 |
198 |
199 |
200 | line3 201 |
202 |
203 |
204 | ); 205 | }; 206 | 207 | export default TutorialHell; 208 | -------------------------------------------------------------------------------- /components/home/WhatIsClueless/WhatIsClueless.tsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable @next/next/no-img-element */ 2 | import React, { useEffect, useState } from 'react'; 3 | 4 | const WhatIsClueless: React.FC = () => { 5 | const [isMobile, setIsMobile] = useState(false); 6 | 7 | useEffect(() => { 8 | if (window.screen.width < 600) { 9 | setIsMobile(true); 10 | } 11 | }, []); 12 | 13 | return ( 14 |
15 |
16 |
17 |
18 |

19 | Clueless is a developer community 20 |

21 |

22 | {' '} 23 | which builds developer tools with the power of open-source. We 24 | believe in the vision “Learn and Grow” and encourage & guide 25 | enthusiasts to dive deep into the world of open-source. 26 |

27 |
28 |
29 | 30 |
31 |
32 |
33 | line1 34 |
35 |
36 | ); 37 | }; 38 | 39 | export default WhatIsClueless; 40 | 41 | const HeatMapImage = () => { 42 | return ( 43 | 50 | 51 | 58 | 66 | 74 | 82 | 90 | 91 | 99 | 107 | 115 | 116 | 124 | 132 | 140 | 148 | 156 | 164 | 172 | 180 | 188 | 196 | 204 | 212 | 220 | 228 | 236 | 237 | ); 238 | }; 239 | -------------------------------------------------------------------------------- /components/home/lackingskills/lackingskills.tsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable @next/next/no-img-element */ 2 | import React from 'react'; 3 | 4 | const LackingSkills = () => { 5 | return ( 6 |
7 |
8 |

9 | Lacking skills? 10 |

11 |

12 | We got you covered. 13 |

14 |

15 | We have curated all the resources all over the internet and 16 | categorised into Tech-Stack. One Stop Solution for your development 17 | resources. 18 |

19 | 25 | 26 | 27 |
28 |
29 | Path 34 | Path 35 |
36 |
37 | ); 38 | }; 39 | 40 | export default LackingSkills; 41 | -------------------------------------------------------------------------------- /components/shared/Footer.tsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable @next/next/no-html-link-for-pages */ 2 | /* eslint-disable @next/next/no-img-element */ 3 | import React from 'react'; 4 | import LinkedInIcon from '@mui/icons-material/LinkedIn'; 5 | import TwitterIcon from '@mui/icons-material/Twitter'; 6 | import GitHubIcon from '@mui/icons-material/GitHub'; 7 | import Link from 'next/link'; 8 | 9 | const Footer: React.FC = () => { 10 | const ClueLogo = (color: string) => { 11 | return ( 12 |
13 | 19 | 23 | 24 |
25 | ); 26 | }; 27 | 28 | return ( 29 | <> 30 |
31 |
32 |
33 | {/* */} 34 | {ClueLogo('white')} 35 |
36 |
37 |

ClueLess

38 | {/*

Learn. Grow.

*/} 39 |
40 |
41 |
42 |

43 | Know Us 44 |

45 | 46 | 47 | About Us 48 | 49 | 50 |
51 |
52 |

53 | Legal 54 |

55 | 56 | 57 | Privacy Policy 58 | 59 | 60 | 61 | 62 | Terms & condition 63 | 64 | 65 |
66 |
67 |
68 |

69 | Quick links 70 |

71 | 72 | 78 | Resources 79 | 80 | 81 | 87 | Blogs 88 | 89 |
90 |
91 |

92 | Contact & Help 93 |

94 | 95 | 96 | Contact Us 97 | 98 | 99 | 100 | 101 | FAQ 102 | 103 | 104 | 127 |
128 |
129 |
130 |

Copyright © by ClueLess 2023

131 |

Powered by Clueless

132 |
133 | 134 | ); 135 | }; 136 | 137 | export default Footer; 138 | -------------------------------------------------------------------------------- /database/eventData.ts: -------------------------------------------------------------------------------- 1 | const data = [ 2 | { 3 | project_id: '1', 4 | event_icon_image: '/flutter.webp', 5 | event_name: 'Flutter Festival', 6 | time_period: '12:00 - 4:00', 7 | desc: 'Winter of Code is a program aimed to increase participation for the Google Summer of Code program among students in colleges and universities', 8 | date: '1st Feb-31st Mar ', 9 | speakers_info: 'IamU', 10 | }, 11 | { 12 | project_id: '2', 13 | event_icon_image: '/flutter.webp', 14 | event_name: 'JWOC', 15 | time_period: '12:00 - 4:00', 16 | desc: 'Winter of Code is a program aimed to increase participation for the Google Summer of Code program among students in colleges and universities', 17 | date: '1st Feb-31st Mar', 18 | speakers_info: 'IamU', 19 | }, 20 | ]; 21 | 22 | export default data; 23 | -------------------------------------------------------------------------------- /database/membersData.ts: -------------------------------------------------------------------------------- 1 | const data = [ 2 | { 3 | name: 'Rajdeep Sengupta', 4 | photo_url: 'https://i.ibb.co/gVX6fmT/rajdeep.jpg', 5 | designation: 'CEO, co-founder', 6 | linkedin_url: 'https://www.linkedin.com/in/rajdeep-sengupta/', 7 | github_url: 'https://github.com/bbsdevloper', 8 | twitter_url: 'https://twitter.com/MukeshKuiry7', 9 | }, 10 | { 11 | name: 'Debajyoti Saha', 12 | photo_url: 'https://i.ibb.co/k0gXrQ3/Dev.jpg', 13 | designation: 'CPO, co-founder', 14 | linkedin_url: 'https://www.linkedin.com/in/debajyotisaha14/', 15 | github_url: 'https://github.com/bbsdevloper', 16 | twitter_url: 'https://twitter.com/MukeshKuiry7', 17 | }, 18 | { 19 | name: 'Roshan Kumar', 20 | photo_url: 'https://i.ibb.co/5vNtRXw/roshan.jpg ', 21 | designation: 'Design Head, co-founder', 22 | linkedin_url: 'https://www.linkedin.com/in/roshan-kumar-176918202/', 23 | github_url: 'https://github.com/bbsdevloper', 24 | twitter_url: 'https://twitter.com/MukeshKuiry7', 25 | }, 26 | { 27 | name: 'Nikhil Raj', 28 | photo_url: 'https://i.ibb.co/qCmsqPR/nikhil.jpg ', 29 | designation: 'CTO, co-founder', 30 | linkedin_url: 'https://www.linkedin.com/in/nikhil25803/', 31 | github_url: 'https://github.com/bbsdevloper', 32 | twitter_url: 'https://twitter.com/MukeshKuiry7', 33 | }, 34 | { 35 | name: 'Avik Bhuin', 36 | photo_url: 'https://i.ibb.co/HC36Hvf/Avik.jpg', 37 | designation: 'COO', 38 | linkedin_url: 'https://www.linkedin.com/in/avik-bhuin-777a77218/', 39 | github_url: 'https://github.com/bbsdevloper', 40 | twitter_url: 'https://twitter.com/MukeshKuiry7', 41 | }, 42 | { 43 | name: 'Subho Ghosh', 44 | photo_url: 'https://i.ibb.co/WcmnDWx/subho.jpg ', 45 | designation: 'Social Media Manager', 46 | linkedin_url: 'https://www.linkedin.com/in/thesubhoghosh/', 47 | github_url: 'https://github.com/bbsdevloper', 48 | twitter_url: 'https://twitter.com/MukeshKuiry7', 49 | }, 50 | { 51 | name: 'Mukesh Kuiry', 52 | photo_url: 'https://i.ibb.co/jy38SXJ/mkesh.jpg ', 53 | designation: 'Web-Developer', 54 | linkedin_url: 'https://www.linkedin.com/in/mukeshkuiry/', 55 | github_url: 'https://github.com/bbsdevloper', 56 | twitter_url: 'https://twitter.com/MukeshKuiry7', 57 | }, 58 | { 59 | name: 'Ravindra Pandey ', 60 | photo_url: 'https://i.ibb.co/nD5zf3X/ravindra.jpg ', 61 | designation: 'Web-Developer', 62 | linkedin_url: 'https://www.linkedin.com/in/ravindrap04/', 63 | github_url: 'https://github.com/ravindraP04', 64 | twitter_url: 'https://twitter.com/MukeshKuiry7', 65 | }, 66 | { 67 | name: 'Muskan', 68 | photo_url: 'https://i.ibb.co/r2DK3KX/muskan.jpg ', 69 | designation: 'UI/UX-Designer', 70 | linkedin_url: 'https://www.linkedin.com/in/muskan-b95b9025b/', 71 | github_url: 'https://github.com/bbsdevloper', 72 | twitter_url: 'https://twitter.com/MukeshKuiry7', 73 | }, 74 | { 75 | name: 'Monishka Jaiswal', 76 | photo_url: 'https://i.ibb.co/DgcDXJg/Monishka.jpg ', 77 | designation: 'Web-Developer', 78 | linkedin_url: 'https://www.linkedin.com/in/monishka-jaiswal-6aab71239/', 79 | github_url: 'https://github.com/bbsdevloper', 80 | twitter_url: 'https://twitter.com/MukeshKuiry7', 81 | }, 82 | 83 | { 84 | name: 'Akash Jha', 85 | photo_url: 'https://i.ibb.co/vQvsfCL/akash.jpg ', 86 | designation: 'Web-Developer', 87 | linkedin_url: 'https://www.linkedin.com/in/akash-jha-087632230/', 88 | github_url: 'https://github.com/bbsdevloper', 89 | twitter_url: 'https://twitter.com/MukeshKuiry7', 90 | }, 91 | { 92 | name: 'Hritik Bhattacharya', 93 | photo_url: 'https://i.ibb.co/QQhh6Vs/hritik.jpg', 94 | designation: 'Web-Developer', 95 | linkedin_url: 'https://www.linkedin.com/in/hritik-bhattacharya-631847210/', 96 | github_url: 'https://github.com/hritikbhattacharya', 97 | twitter_url: 'https://twitter.com/Hritikb25', 98 | }, 99 | { 100 | name: 'Rohit Ranjan Singh', 101 | photo_url: 102 | 'https://media.licdn.com/dms/image/D5603AQE6ITl3rZMQAw/profile-displayphoto-shrink_200_200/0/1677669282230?e=1686787200&v=beta&t=e745sXnUavivumMBRJwJ2suVShIhEFMCNIDcVkUx4oM', 103 | designation: 'DevRel', 104 | linkedin_url: 'https://linkedin.com/in/rohit-ranjan-singh-6133901b6/', 105 | github_url: 'https://twitter.com/rohit_ranjan27', 106 | twitter_url: 'https://github.com/rohitranjan-2702', 107 | }, 108 | ]; 109 | 110 | export default data; 111 | -------------------------------------------------------------------------------- /database/teamMembers.ts: -------------------------------------------------------------------------------- 1 | const data = [ 2 | { 3 | name: 'Rajdeep Sengupta', 4 | photo_url: 'https://i.ibb.co/gVX6fmT/rajdeep.jpg', 5 | designation: 'Co-founder', 6 | linkedin_url: 'https://www.linkedin.com/in/rajdeep-sengupta/', 7 | github_url: 'https://github.com/Rajdip019', 8 | twitter_url: 'https://twitter.com/RajdeepS019', 9 | }, 10 | { 11 | name: 'Debajyoti Saha', 12 | photo_url: 'https://i.ibb.co/k0gXrQ3/Dev.jpg', 13 | designation: 'Co-founder', 14 | linkedin_url: 'https://www.linkedin.com/in/debajyotisaha14/', 15 | github_url: 'https://github.com/Debajyoti14', 16 | twitter_url: 'https://twitter.com/debajyoti14_', 17 | }, 18 | { 19 | name: 'Roshan Kumar', 20 | photo_url: 'https://i.ibb.co/5vNtRXw/roshan.jpg ', 21 | designation: 'Co-founder', 22 | linkedin_url: 'https://www.linkedin.com/in/roshan-kumar-176918202/', 23 | github_url: 'https://github.com/Roshaen', 24 | twitter_url: 'https://twitter.com/youhaveme__', 25 | }, 26 | { 27 | name: 'Nikhil Raj', 28 | photo_url: 'https://i.ibb.co/qCmsqPR/nikhil.jpg ', 29 | designation: 'Co-founder', 30 | linkedin_url: 'https://www.linkedin.com/in/nikhil25803/', 31 | github_url: 'https://github.com/nikhil25803', 32 | twitter_url: 'https://twitter.com/humans_write', 33 | }, 34 | { 35 | name: 'Subho Ghosh', 36 | photo_url: 'https://i.ibb.co/WcmnDWx/subho.jpg ', 37 | designation: 'Social Media Manager', 38 | linkedin_url: 'https://www.linkedin.com/in/thesubhoghosh/', 39 | github_url: 'https://github.com/bbsdevloper', 40 | twitter_url: 'https://twitter.com/subhoghosh02', 41 | }, 42 | { 43 | name: 'Avik Bhuin', 44 | photo_url: 'https://i.ibb.co/HC36Hvf/Avik.jpg', 45 | designation: 'Operations Lead', 46 | linkedin_url: 'https://www.linkedin.com/in/avik-bhuin-777a77218/', 47 | github_url: '#', 48 | twitter_url: 'https://twitter.com/Avik_on_web', 49 | }, 50 | { 51 | name: 'Mukesh Kuiry', 52 | photo_url: 'https://i.ibb.co/jy38SXJ/mkesh.jpg ', 53 | designation: 'Web-Developer', 54 | linkedin_url: 'https://www.linkedin.com/in/mukeshkuiry/', 55 | github_url: 'https://github.com/bbsdevloper', 56 | twitter_url: 'https://twitter.com/MukeshKuiry7', 57 | }, 58 | { 59 | name: 'Ravindra Pandey ', 60 | photo_url: 'https://i.ibb.co/nD5zf3X/ravindra.jpg ', 61 | designation: 'Web-Developer', 62 | linkedin_url: 'https://www.linkedin.com/in/ravindrap04/', 63 | github_url: 'https://github.com/ravindraP04', 64 | twitter_url: 'https://twitter.com/ravindraP04', 65 | }, 66 | { 67 | name: 'Rupsha Sarkar', 68 | photo_url: 'https://i.ibb.co/3hqWYC2/rupsha.jpg', 69 | designation: 'Web-Developer', 70 | linkedin_url: 'https://www.linkedin.com/in/rupsha-sarkar-aab06723a/', 71 | github_url: '#', 72 | twitter_url: 'https://twitter.com/ruuuuu_0506', 73 | }, 74 | { 75 | name: 'Muskan', 76 | photo_url: 'https://i.ibb.co/r2DK3KX/muskan.jpg ', 77 | designation: 'UI/UX Designer', 78 | linkedin_url: 'https://www.linkedin.com/in/muskan-b95b9025b/', 79 | github_url: '#', 80 | twitter_url: '#', 81 | }, 82 | { 83 | name: 'Monishka Jaiswal', 84 | photo_url: 'https://i.ibb.co/DgcDXJg/Monishka.jpg ', 85 | designation: 'Web-Developer', 86 | linkedin_url: 'https://www.linkedin.com/in/monishka-jaiswal-6aab71239/', 87 | github_url: '#', 88 | twitter_url: '#', 89 | }, 90 | { 91 | name: 'Akash Jha', 92 | photo_url: 'https://i.ibb.co/vQvsfCL/akash.jpg ', 93 | designation: 'Web-Developer', 94 | linkedin_url: 'https://www.linkedin.com/in/akash-jha-087632230/', 95 | github_url: 'https://github.com/bbsdevloper', 96 | twitter_url: 'https://twitter.com/MukeshKuiry7', 97 | }, 98 | { 99 | name: 'Hritik Bhattacharya', 100 | photo_url: 'https://i.ibb.co/QQhh6Vs/hritik.jpg', 101 | designation: 'Web-Developer', 102 | linkedin_url: 'https://www.linkedin.com/in/hritik-bhattacharya-631847210/', 103 | github_url: 'https://github.com/hritikbhattacharya', 104 | twitter_url: 'https://twitter.com/Hritikb25', 105 | }, 106 | { 107 | name: 'Ashhutosh Jha', 108 | photo_url: 'https://i.ibb.co/QDDKKF3/ashdude.jpg', 109 | designation: 'Flutter-Developer', 110 | linkedin_url: 'https://www.linkedin.com/in/ashhutosh-jha-6734541b9/', 111 | github_url: 'https://github.com/ashdude1401', 112 | twitter_url: 'https://twitter.com/Ashutos24857768', 113 | }, 114 | { 115 | name: 'Bhavik Kothari', 116 | photo_url: 'https://i.ibb.co/DMGYNkd/bhavik.jpg', 117 | designation: 'Flutter-Developer', 118 | linkedin_url: 'https://www.linkedin.com/in/bhavik-kothari/', 119 | github_url: '#', 120 | twitter_url: '#', 121 | }, 122 | { 123 | name: 'Rohit Ranjan Singh', 124 | photo_url: 125 | 'https://media.licdn.com/dms/image/D5603AQE6ITl3rZMQAw/profile-displayphoto-shrink_200_200/0/1677669282230?e=1686787200&v=beta&t=e745sXnUavivumMBRJwJ2suVShIhEFMCNIDcVkUx4oM', 126 | designation: 'DevRel', 127 | linkedin_url: 'https://linkedin.com/in/rohit-ranjan-singh-6133901b6/', 128 | github_url: 'https://twitter.com/rohit_ranjan27', 129 | twitter_url: 'https://github.com/rohitranjan-2702', 130 | }, 131 | ]; 132 | 133 | export default data; 134 | -------------------------------------------------------------------------------- /helpers/helper.ts: -------------------------------------------------------------------------------- 1 | export const template = { 2 | templateString: 'test', 3 | }; 4 | -------------------------------------------------------------------------------- /interfaces/eventInterface.d.ts: -------------------------------------------------------------------------------- 1 | export interface IEvent { 2 | event_name: string; 3 | event_banner_image: string; 4 | event_icon_image: string; 5 | speakers_info: string; 6 | date: string; 7 | time_period: string; 8 | agenda: string; 9 | } 10 | -------------------------------------------------------------------------------- /lib/firebaseConfig.ts: -------------------------------------------------------------------------------- 1 | // Import the functions you need from the SDKs you need 2 | import { initializeApp } from 'firebase/app'; 3 | import { getAnalytics } from 'firebase/analytics'; 4 | import { getFirestore } from 'firebase/firestore'; 5 | import { getStorage } from 'firebase/storage'; 6 | 7 | const firebaseConfig = { 8 | apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY, 9 | authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN, 10 | projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID, 11 | storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET, 12 | messagingSenderId: process.env.NEXT_PUBLIC_FIREBASE_MESSEGING_SENDER_ID, 13 | appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID, 14 | measurementId: process.env.NEXT_PUBLIC_FIREBASE_MEASURMENT_ID, 15 | }; 16 | 17 | // Initialize Firebase 18 | export const app = initializeApp(firebaseConfig); 19 | // export const analytics = getAnalytics(app); 20 | export const db = getFirestore(app); 21 | export const storage = getStorage(app); 22 | -------------------------------------------------------------------------------- /next-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | // NOTE: This file should not be edited 5 | // see https://nextjs.org/docs/basic-features/typescript for more information. 6 | -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | reactStrictMode: true, 4 | }; 5 | 6 | module.exports = nextConfig; 7 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "lint": "prettier --check .", 10 | "format": "prettier --write .", 11 | "prepare": "husky install", 12 | "pre-commit": "npm run format && git add -A ." 13 | }, 14 | "husky": { 15 | "hooks": { 16 | "pre-commit": "npm run format && git add -A ." 17 | } 18 | }, 19 | "dependencies": { 20 | "@emotion/react": "^11.10.5", 21 | "@emotion/styled": "^11.10.5", 22 | "@headlessui/react": "^1.7.13", 23 | "@heroicons/react": "^2.0.16", 24 | "@mui/icons-material": "^5.11.0", 25 | "@mui/material": "^5.11.8", 26 | "@next/font": "13.1.6", 27 | "@react-spring/web": "^9.7.1", 28 | "@tailwindcss/line-clamp": "^0.4.2", 29 | "@types/node": "18.11.19", 30 | "@types/react": "18.0.27", 31 | "@types/react-dom": "18.0.10", 32 | "@vercel/analytics": "^1.0.0", 33 | "cobe": "^0.6.3", 34 | "eslint": "8.33.0", 35 | "eslint-config-next": "13.1.6", 36 | "firebase": "^9.17.1", 37 | "framer-motion": "^9.0.4", 38 | "next": "13.1.6", 39 | "react": "18.2.0", 40 | "react-dom": "18.2.0", 41 | "react-icons": "^4.7.1", 42 | "react-slick": "^0.29.0", 43 | "react-tooltip": "^5.7.5", 44 | "react-tweet-embed": "^2.0.0", 45 | "react-twitter-embed": "^4.0.4", 46 | "slick-carousel": "^1.8.1", 47 | "swiper": "^9.1.1", 48 | "tailwind": "^4.0.0", 49 | "template-helpers": "^1.0.1", 50 | "typescript": "4.9.5" 51 | }, 52 | "devDependencies": { 53 | "@types/react-slick": "^0.23.10", 54 | "autoprefixer": "^10.4.13", 55 | "husky": "^8.0.3", 56 | "postcss": "^8.4.21", 57 | "prettier": "2.8.3", 58 | "tailwindcss": "^3.2.4" 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /pages/404.tsx: -------------------------------------------------------------------------------- 1 | import Head from 'next/head'; 2 | import Link from 'next/link'; 3 | import React from 'react'; 4 | 5 | const oops = () => { 6 | return ( 7 |
8 | 9 | ClueLess | Error 10 | 11 | 12 |
13 |
14 |
15 |
16 |
17 | 22 |

23 | OOPS! PAGE NOT FOUND 24 |

25 | 26 | 29 | 30 |
31 | {/* */} 36 |
37 |
38 | ); 39 | }; 40 | 41 | export default oops; 42 | -------------------------------------------------------------------------------- /pages/_app.tsx: -------------------------------------------------------------------------------- 1 | import { createTheme, ThemeProvider } from '@mui/material'; 2 | import { AppProps } from 'next/dist/shared/lib/router/router'; 3 | import PageLayout from '../components/PageLayout'; 4 | import { Analytics } from '@vercel/analytics/react'; 5 | 6 | import '../styles/globals.css'; 7 | 8 | export default function App({ Component, pageProps }: AppProps) { 9 | const theme = createTheme({ 10 | typography: { 11 | fontFamily: ['DM Sans', 'sans-serif'].join(','), 12 | }, 13 | }); 14 | return ( 15 | 16 | 17 | 18 | 19 | 20 | 21 | ); 22 | } 23 | -------------------------------------------------------------------------------- /pages/_document.tsx: -------------------------------------------------------------------------------- 1 | import { Html, Head, Main, NextScript } from 'next/document'; 2 | 3 | export default function Document() { 4 | return ( 5 | 6 | 7 | 8 | 9 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | ); 20 | } 21 | -------------------------------------------------------------------------------- /pages/about-us.tsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable @next/next/no-img-element */ 2 | import React from 'react'; 3 | import Head from 'next/head'; 4 | import TeamMember from '../components/About/TeamMember'; 5 | 6 | const AboutUs = () => { 7 | return ( 8 | <> 9 | 10 | ClueLess | About Us 11 | 12 | 13 |
14 |
15 |
16 |

17 | About
Community. 18 |

19 |

20 | Clueless is a student community which focuses on building developer 21 | tools with the power of open-source. We believe in the vision “Learn 22 | and Grow” and encourage & guide enthusiasts to dive deep into the 23 | world of open-source. 24 |

25 |
26 | 31 | {/* Blur Effect */} 32 |
39 |
40 |
41 | 46 | {/* Blur Effect */} 47 |
54 |
55 | 56 |
57 |
58 | vision 63 |
64 |

65 | Our Vision 66 |

67 |

68 | We believe in the motto 'Learn & Grow'. Our sole focus is to 69 | build some developer tools which will be built by developers 70 | and serve for developers. 71 |

72 |
73 |
74 |
75 |
76 |
77 |
78 |

79 | About
Community. 80 |

81 |
82 | {/* Blur Effect */} 83 |
90 | 95 |
96 |

97 | Clueless in a virtual open-source community built with the motive of 98 | “Learn and Grow”. We, as a community, encourage and guide 99 | enthusiasts to dive into the world of open-source. We provide the 100 | best resources available on the internet, write blogs that helps 101 | other to explore their domain more deeply, organize events, GitHub 102 | repositories, organize hackathons, and more couniting activities 103 |

104 | 109 |
110 |
111 | vision 116 |
117 |

118 | Our Vision 119 |

120 |

121 | Internet is flooded with so many resources that can make one 122 | confused and clueless. So we provide the best, filtered, and 123 | curated resources like YouTube videos, GitHub repositories, 124 | websites, cheatsheets, etc!{' '} 125 |

126 |
127 |
128 |
129 |
130 |
131 | 132 |
133 | 134 | ); 135 | }; 136 | 137 | export default AboutUs; 138 | -------------------------------------------------------------------------------- /pages/api/hello.ts: -------------------------------------------------------------------------------- 1 | // Next.js API route support: https://nextjs.org/docs/api-routes/introduction 2 | import type { NextApiRequest, NextApiResponse } from 'next'; 3 | 4 | type Data = { 5 | name: string; 6 | }; 7 | 8 | export default function handler( 9 | req: NextApiRequest, 10 | res: NextApiResponse 11 | ) { 12 | res.status(200).json({ name: 'John Doe' }); 13 | } 14 | -------------------------------------------------------------------------------- /pages/coming-soon.tsx: -------------------------------------------------------------------------------- 1 | import Head from 'next/head'; 2 | import React from 'react'; 3 | 4 | const comingSoon = () => { 5 | return ( 6 |
7 | 8 | ClueLess | Coming Soon 9 | 10 | 11 |
12 |
13 | 18 |
19 | 20 |
21 | 26 | 27 | 32 |
33 |
34 |
35 | ); 36 | }; 37 | 38 | export default comingSoon; 39 | -------------------------------------------------------------------------------- /pages/contact-us.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState } from 'react'; 2 | import Head from 'next/head'; 3 | import Snackbar from '@mui/material/Snackbar'; 4 | import MuiAlert, { AlertProps } from '@mui/material/Alert'; 5 | /* eslint-disable @next/next/no-img-element */ 6 | const Contact = () => { 7 | const maxSubjectInputLength = 150; 8 | const Alert = React.forwardRef(function Alert( 9 | props, 10 | ref 11 | ) { 12 | return ; 13 | }); 14 | 15 | // const { theme, setTheme } = useTheme(); 16 | 17 | const [open, setOpen] = React.useState(false); 18 | 19 | const handleSnack = () => { 20 | setOpen(true); 21 | }; 22 | 23 | const handleClose = ( 24 | event?: React.SyntheticEvent | Event, 25 | reason?: string 26 | ) => { 27 | if (reason === 'clickaway') { 28 | return; 29 | } 30 | 31 | setOpen(false); 32 | }; 33 | 34 | function handleSubmit() { 35 | fetch('https://formsubmit.co/ajax/official.cluelesscommunity@gmail.com', { 36 | method: 'POST', 37 | headers: { 38 | 'Content-Type': 'application/json', 39 | Accept: 'application/json', 40 | }, 41 | body: JSON.stringify({ 42 | email, 43 | subject, 44 | message, 45 | }), 46 | }) 47 | .then((response) => response.json()) 48 | .then((data) => { 49 | handleSnack(); 50 | }) 51 | .catch((error) => console.log(error)); 52 | } 53 | 54 | const handleReset = () => { 55 | setEmail(''); 56 | setSubject(''); 57 | setMessage(''); 58 | }; 59 | const [email, setEmail] = useState(); 60 | const [subject, setSubject] = useState(); 61 | const [message, setMessage] = useState(); 62 | return ( 63 |
64 | 65 | ClueLess | Contact Us 66 | 67 |
68 |
69 | {/*
*/} 70 |
71 |
72 |

73 | Contact Us 74 |

75 |

76 | Have any questions? We would love to hear from you 77 |

78 |
79 | 80 |
81 |
82 |

83 | Contact Us 84 |

85 |

86 | Have any questions? We would love to hear from you 87 |

88 |
): void => { 90 | e.preventDefault(); 91 | handleReset(); 92 | handleSubmit(); 93 | }} 94 | > 95 |
96 | 105 | ): void => { 106 | setEmail(e.target.value); 107 | }} 108 | /> 109 | 110 | 120 | ): void => { 121 | setSubject(e.target.value); 122 | }} 123 | maxLength={maxSubjectInputLength} 124 | /> 125 | 126 |