├── public
├── logo.png
└── index.html
├── src
├── assets
│ ├── img1.png
│ ├── logo.png
│ ├── team.jpg
│ ├── Qr-code.png
│ ├── calender.png
│ ├── youtube.png
│ ├── contactImg.jpg
│ ├── opensource.jpg
│ ├── Background 1.png
│ ├── EventCalendar.png
│ ├── Blank Background 3.png
│ ├── Blank Background 4.png
│ ├── Blank Backround 2.png
│ ├── Blank Backround 4.png
│ ├── Blank Backround 5.png
│ ├── Blank Backround 7.png
│ ├── qr-code-linkendIn.png
│ ├── Blank Backgrounds 1.png
│ └── ex-header-background.jpg
├── components
│ ├── styles
│ │ ├── opensource.css
│ │ ├── about.css
│ │ ├── TeamCard.css
│ │ ├── hackathon.css
│ │ ├── Card.css
│ │ ├── testimonials.css
│ │ ├── App.css
│ │ ├── customnav.css
│ │ ├── footer.css
│ │ ├── HackCard.css
│ │ ├── Home.css
│ │ ├── contact.css
│ │ └── event.css
│ ├── utilities
│ │ ├── ButtonStyles.js
│ │ ├── TeamCard.js
│ │ ├── progressbar.js
│ │ ├── Testimonial.js
│ │ ├── HackCard.js
│ │ ├── validator.js
│ │ ├── ScrollButton.js
│ │ ├── Card.js
│ │ ├── Testimonials.js
│ │ ├── ContactStyle.js
│ │ ├── hackCard.json
│ │ ├── SocialLinks.js
│ │ └── cardData.json
│ ├── pages
│ │ ├── openSource.js
│ │ ├── Hackathon.js
│ │ ├── collaboration.js
│ │ ├── event.js
│ │ ├── addevent.js
│ │ └── home.js
│ ├── constants
│ │ ├── data.json
│ │ └── testimonialSettings.js
│ ├── hooks
│ │ ├── useForm.js
│ │ ├── useFirestore.js
│ │ ├── useFetch.js
│ │ └── useStorage.js
│ ├── App.js
│ └── layout
│ │ ├── Footer.js
│ │ └── customnavbar.js
├── index.css
├── index.js
└── firebase
│ └── firebase.js
├── .gitignore
├── .github
└── workflows
│ ├── greetings.yml
│ ├── github-actions-demo.yml
│ ├── manual.yml
│ └── codeql-analysis.yml
├── package.json
└── README.md
/public/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/public/logo.png
--------------------------------------------------------------------------------
/src/assets/img1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/img1.png
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/logo.png
--------------------------------------------------------------------------------
/src/assets/team.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/team.jpg
--------------------------------------------------------------------------------
/src/assets/Qr-code.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/Qr-code.png
--------------------------------------------------------------------------------
/src/assets/calender.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/calender.png
--------------------------------------------------------------------------------
/src/assets/youtube.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/youtube.png
--------------------------------------------------------------------------------
/src/assets/contactImg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/contactImg.jpg
--------------------------------------------------------------------------------
/src/assets/opensource.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/opensource.jpg
--------------------------------------------------------------------------------
/src/assets/Background 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/Background 1.png
--------------------------------------------------------------------------------
/src/assets/EventCalendar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/EventCalendar.png
--------------------------------------------------------------------------------
/src/assets/Blank Background 3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/Blank Background 3.png
--------------------------------------------------------------------------------
/src/assets/Blank Background 4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/Blank Background 4.png
--------------------------------------------------------------------------------
/src/assets/Blank Backround 2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/Blank Backround 2.png
--------------------------------------------------------------------------------
/src/assets/Blank Backround 4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/Blank Backround 4.png
--------------------------------------------------------------------------------
/src/assets/Blank Backround 5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/Blank Backround 5.png
--------------------------------------------------------------------------------
/src/assets/Blank Backround 7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/Blank Backround 7.png
--------------------------------------------------------------------------------
/src/assets/qr-code-linkendIn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/qr-code-linkendIn.png
--------------------------------------------------------------------------------
/src/assets/Blank Backgrounds 1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/Blank Backgrounds 1.png
--------------------------------------------------------------------------------
/src/assets/ex-header-background.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CodeFlowOrg/codeflow/HEAD/src/assets/ex-header-background.jpg
--------------------------------------------------------------------------------
/src/components/styles/opensource.css:
--------------------------------------------------------------------------------
1 | .opensource{
2 | height: 100vh;
3 | width: 100vw;
4 | align-content: center;
5 | text-justify: auto;
6 | text-align: center;
7 | }
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | #loading{
2 | position:fixed;
3 | width:100%;
4 | height:100vh;
5 | background: #fff
6 | url('https://wpdaddy.com/wp-content/uploads/2019/05/atom-animation-loader.gif')
7 | no-repeat center;
8 | z-index : 99999;
9 | }
--------------------------------------------------------------------------------
/src/components/utilities/ButtonStyles.js:
--------------------------------------------------------------------------------
1 | import styled from 'styled-components';
2 |
3 | export const Button = styled.div`
4 | position: fixed;
5 | width: 100%;
6 | left: 95%;
7 | @media (max-width:500px){
8 | left:86%;
9 | }
10 | bottom: 50px;
11 | height: 20px;
12 | font-size: 3rem;
13 | z-index: 999;
14 | cursor: pointer;
15 | color: #4A403A;
16 | `
17 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 | import ReactDOM from "react-dom";
3 | import "./index.css";
4 | import App from "./components/App";
5 | import "bootstrap/dist/css/bootstrap.min.css";
6 |
7 |
8 | ReactDOM.render( <
9 | React.StrictMode >
10 | <
11 | App / >
12 | <
13 | /React.StrictMode>,
14 | document.getElementById("root")
15 | );
--------------------------------------------------------------------------------
/src/components/pages/openSource.js:
--------------------------------------------------------------------------------
1 | import '../styles/opensource.css'
2 | function Opensource() {
3 | return (
4 |
8 | );
9 | }
10 |
11 | export default Opensource;
12 |
--------------------------------------------------------------------------------
/src/components/utilities/TeamCard.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import '../styles/TeamCard.css'
3 |
4 | function TeamCard({image,name,position}) {
5 | return (
6 |
7 |
8 |
{name}
9 |
{position}
10 |
11 | )
12 | }
13 |
14 | export default TeamCard
15 |
--------------------------------------------------------------------------------
/.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 | # production
12 | /build
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | npm-debug.log*
22 | yarn-debug.log*
23 | yarn-error.log*
24 |
--------------------------------------------------------------------------------
/src/components/constants/data.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "title": "Home",
4 | "path":"/"
5 | },
6 | {
7 | "title": "About",
8 | "path":"/about"
9 | },
10 | {
11 | "title": "Events",
12 | "path":"/events"
13 | },{
14 | "title": "Team",
15 | "path":"/team"
16 |
17 | },{
18 | "title": "Contact",
19 | "path":"/contact"
20 |
21 | }
22 | ]
--------------------------------------------------------------------------------
/.github/workflows/greetings.yml:
--------------------------------------------------------------------------------
1 | name: Greetings
2 |
3 | on: [pull_request, issues]
4 |
5 | jobs:
6 | greeting:
7 | runs-on: ubuntu-latest
8 | permissions:
9 | issues: write
10 | pull-requests: write
11 | steps:
12 | - uses: actions/first-interaction@v1
13 | with:
14 | repo-token: ${{ secrets.GITHUB_TOKEN }}
15 | issue-message: 'Message that will be displayed on users first issue'
16 | pr-message: 'Message that will be displayed on users first pull request'
17 |
--------------------------------------------------------------------------------
/src/components/utilities/progressbar.js:
--------------------------------------------------------------------------------
1 | import { React } from "react";
2 | import "../styles/App.css";
3 | import useStorage from "../hooks/useStorage";
4 | import { ProgressBar } from "react-bootstrap";
5 | const ProBar = ({
6 | file,
7 | heading,
8 | description,
9 | }) => {
10 | const { url, progress } = useStorage(file, heading, description);
11 | console.log(progress, url);
12 | return (
13 |
18 | );
19 | };
20 |
21 | export default ProBar;
22 |
--------------------------------------------------------------------------------
/src/components/hooks/useForm.js:
--------------------------------------------------------------------------------
1 | import {useState} from 'react'
2 |
3 | const useForm = (validator) => {
4 | const[values, setValues] = useState({
5 | firstname:'',
6 | lastname:'',
7 | email:'',
8 | phone:'',
9 | message:''
10 | })
11 | const[errors, setErrors] = useState({})
12 |
13 | const handleChange = (e)=>{
14 | setValues({
15 | ...values,
16 | [e.target.name]:e.target.value
17 | })
18 | }
19 | const handleSubmit =(e) =>{
20 | e.preventDefault();
21 | setErrors(validator(values))
22 | }
23 |
24 | return{handleChange , values, handleSubmit , errors}
25 | }
26 |
27 | export default useForm;
--------------------------------------------------------------------------------
/src/components/hooks/useFirestore.js:
--------------------------------------------------------------------------------
1 | import { useState, useEffect } from "react";
2 | import { projectFirestore } from "../../firebase/firebase";
3 |
4 | const useFirestore = (collection) => {
5 | const [docs, setDocs] = useState([]);
6 |
7 | useEffect(() => {
8 | projectFirestore
9 | .collection(collection)
10 | .orderBy("createdAt", "desc")
11 | .onSnapshot((snap) => {
12 | let documents = [];
13 | snap.forEach((doc) => {
14 | documents.push({ ...doc.data(), id: doc.id });
15 | });
16 | setDocs(documents);
17 | });
18 | }, [collection]);
19 | return { docs };
20 | };
21 | export default useFirestore;
22 |
--------------------------------------------------------------------------------
/src/components/utilities/Testimonial.js:
--------------------------------------------------------------------------------
1 | import { FaQuoteLeft } from "react-icons/fa";
2 |
3 | const Testimonial = ({ name, body, email }) => {
4 | return (
5 |
6 |
7 |
8 |
9 |
10 |
11 |
{body}
12 |
13 |
{name}
14 |
{email}
15 |
16 |
17 |
18 | );
19 | };
20 |
21 | export default Testimonial;
22 |
--------------------------------------------------------------------------------
/src/components/utilities/HackCard.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import '../styles/HackCard.css'
3 | function HackCard({img, heading, para,category,cat,timing}) {
4 | return (
5 |
6 |
7 |
8 |
{timing}
9 |
10 |
11 |
{heading} {category}
12 |
{para}
13 |
{cat ==='past'? 'Watch Now': 'Register'}
14 |
15 |
16 | )
17 | }
18 |
19 | export default HackCard
20 |
--------------------------------------------------------------------------------
/src/components/utilities/validator.js:
--------------------------------------------------------------------------------
1 | export default function validator(values){
2 | let errors={}
3 | if(!values.firstname.trim()){
4 | errors.firstname = 'Firstname required'
5 | }
6 | if(!values.lastname.trim()){
7 | errors.lastname = 'Lastname required'
8 | }
9 | if(!values.email.trim()){
10 | errors.email = 'Email required'
11 | }else if (!/\S+@\S+\.\S+/.test(values.email)) {
12 | errors.email = 'Email address is invalid';
13 | }
14 | if(values.phone.length < 10){
15 | errors.phone = 'Phone no is incorrect'
16 | }
17 | if(!values.message.trim()){
18 | errors.message='Message required'
19 | }
20 | return errors;
21 | }
--------------------------------------------------------------------------------
/src/components/styles/about.css:
--------------------------------------------------------------------------------
1 | .about__page-part1 {
2 | background: url("../../assets/Blank\ Background\ 3.png") no-repeat
3 | center/cover;
4 | }
5 | .about__page-part2 {
6 | background: url("../../assets/Blank\ Background\ 4.png") no-repeat
7 | center/cover;
8 | }
9 | .about__page-text-wrapper {
10 | display: flex;
11 | justify-content: space-around;
12 | align-items: center;
13 | text-align: center;
14 | max-width: 1000px;
15 | margin: auto;
16 | color: #fff;
17 | padding: 0vh 5vh 15vh 5vh;
18 | text-overflow: clip;
19 | }
20 |
21 | .about__page-text-wrapper article p {
22 | font-size: 20px;
23 | text-align: center;
24 | }
25 | .about__page-title {
26 | font-size: 40px;
27 | color: #fff;
28 | }
29 |
30 | .about__page-title span {
31 | color: #1cbdd6;
32 | }
33 |
--------------------------------------------------------------------------------
/src/firebase/firebase.js:
--------------------------------------------------------------------------------
1 | import firebase from "firebase/app";
2 | import "firebase/storage";
3 | import "firebase/firestore";
4 |
5 | // Your web app's Firebase configuration
6 | const Config = {
7 | apiKey: "AIzaSyAc1HwKpWdsEPUBaU0y9mWmla5EU3_vqCQ",
8 | authDomain: "codeflow-org.firebaseapp.com",
9 | databaseURL: "https://codeflow-org-default-rtdb.firebaseio.com",
10 | projectId: "codeflow-org",
11 | storageBucket: "codeflow-org.appspot.com",
12 | messagingSenderId: "706543120697",
13 | appId: "1:706543120697:web:e90a5abaa092a306c778e8",
14 | };
15 | // Initialize Firebase
16 | const firebaseApp = firebase.initializeApp(Config);
17 |
18 | const projectStorage = firebaseApp.storage();
19 | const projectFirestore = firebaseApp.firestore();
20 | const timestamp = firebase.firestore.FieldValue.serverTimestamp();
21 | export { projectStorage, projectFirestore, timestamp };
22 |
--------------------------------------------------------------------------------
/src/components/utilities/ScrollButton.js:
--------------------------------------------------------------------------------
1 | import React, {useState} from 'react';
2 | import {FaArrowCircleUp} from 'react-icons/fa';
3 | import { Button } from './ButtonStyles';
4 |
5 | const ScrollToTopButton = () => {
6 |
7 | const [visible, setVisible] = useState(false)
8 |
9 | const toggleVisible = () => {
10 | const scrolled = document.documentElement.scrollTop;
11 | if (scrolled > 300){
12 | setVisible(true)
13 | }
14 | else if (scrolled <= 300){
15 | setVisible(false)
16 | }
17 | };
18 |
19 | const scrollToTop = () =>{
20 | window.scrollTo({
21 | top: 0,
22 | behavior: 'smooth'
23 | });
24 | };
25 |
26 | window.addEventListener('scroll', toggleVisible);
27 |
28 | return (
29 |
30 |
32 |
33 | );
34 | }
35 |
36 | export default ScrollToTopButton;
37 |
--------------------------------------------------------------------------------
/.github/workflows/github-actions-demo.yml:
--------------------------------------------------------------------------------
1 | name: GitHub Actions Demo
2 | on: [push]
3 | jobs:
4 | Explore-GitHub-Actions:
5 | runs-on: ubuntu-latest
6 | steps:
7 | - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
8 | - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
9 | - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
10 | - name: Check out repository code
11 | uses: actions/checkout@v2
12 | - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
13 | - run: echo "🖥️ The workflow is now ready to test your code on the runner."
14 | - name: List files in the repository
15 | run: |
16 | ls ${{ github.workspace }}
17 | - run: echo "🍏 This job's status is ${{ job.status }}."
--------------------------------------------------------------------------------
/src/components/styles/TeamCard.css:
--------------------------------------------------------------------------------
1 | .teamCard {
2 | justify-content: center;
3 | align-items: center;
4 | flex-direction: column;
5 | border-radius: 15px;
6 | background-color: rgb(255, 255, 255);
7 | width: fit-content;
8 | margin: 0.6rem 0.6rem;
9 | padding: 15px 10px;
10 | width: 150px;
11 | cursor: pointer;
12 | height: 200px;
13 | word-break: break-word;
14 | }
15 | .teamCard:hover img {
16 | transform: scale(1.05);
17 | }
18 | .teamCard img {
19 | width: 100px;
20 | height: 100px;
21 | margin-left: 11%;
22 | border-radius: 50%;
23 | transition: all 0.3s ease;
24 | }
25 | .teamCard h5 {
26 | font-size: 1rem;
27 | text-align: center;
28 | margin-top: 0.5rem;
29 | margin-bottom: 0rem;
30 | font-weight: 700;
31 | }
32 | .teamCard p {
33 | font-size: 0.9rem;
34 | text-align: center;
35 | margin-top: 0.5rem;
36 | margin-bottom: 0rem;
37 | font-weight: 700;
38 | }
39 |
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | Codeflow
13 |
14 |
15 |
16 | You need to enable JavaScript to run this app.
17 |
18 |
19 |
20 |
28 |
29 |
--------------------------------------------------------------------------------
/src/components/hooks/useFetch.js:
--------------------------------------------------------------------------------
1 | import { useState, useEffect, useCallback } from 'react';
2 |
3 | export const useFetch = (url) => {
4 | //Loading state
5 | const [isLoading, setIsLoading] = useState(true);
6 | //Error state
7 | const [isError, setIsError] = useState(false);
8 |
9 | const [data, setData] = useState([]);
10 |
11 | const fetchData = useCallback(async () => {
12 | setIsLoading(true);
13 | try {
14 | const response = await fetch(url);
15 |
16 | if (!response.ok) throw new Error(`${response.status} Product not found`);
17 |
18 | const data = await response.json();
19 |
20 | setData(data);
21 |
22 | //Disable loading screen
23 | setIsLoading(false);
24 | } catch (error) {
25 | setIsLoading(false);
26 | setIsError(true);
27 | }
28 | }, [url]);
29 | useEffect(() => {
30 | fetchData();
31 | }, [url, fetchData]);
32 |
33 | return { data, isLoading, isError };
34 | };
35 |
--------------------------------------------------------------------------------
/src/components/utilities/Card.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import '../styles/Card.css'
3 | import { BsCalendar } from "react-icons/bs";
4 |
5 | function Card({image,title,info,category,date,time,btn}) {
6 | return (
7 |
8 |
9 |
10 |
11 |
({title}) {category}
12 |
{info}
13 |
14 |
15 |
16 |
17 |
Date: {date}
18 |
Time: {time}
19 |
20 |
21 |
22 |
{btn}
23 |
24 | )
25 | }
26 |
27 | export default Card
28 |
--------------------------------------------------------------------------------
/.github/workflows/manual.yml:
--------------------------------------------------------------------------------
1 | # This is a basic workflow that is manually triggered
2 |
3 | name: Manual workflow
4 |
5 | # Controls when the action will run. Workflow runs when manually triggered using the UI
6 | # or API.
7 | on:
8 | workflow_dispatch:
9 | # Inputs the workflow accepts.
10 | inputs:
11 | name:
12 | # Friendly description to be shown in the UI instead of 'name'
13 | description: 'Person to greet'
14 | # Default value if no value is explicitly provided
15 | default: 'World'
16 | # Input has to be provided for the workflow to run
17 | required: true
18 |
19 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel
20 | jobs:
21 | # This workflow contains a single job called "greet"
22 | greet:
23 | # The type of runner that the job will run on
24 | runs-on: ubuntu-latest
25 |
26 | # Steps represent a sequence of tasks that will be executed as part of the job
27 | steps:
28 | # Runs a single command using the runners shell
29 | - name: Send greeting
30 | run: echo "Hello ${{ github.event.inputs.name }}"
31 |
--------------------------------------------------------------------------------
/src/components/utilities/Testimonials.js:
--------------------------------------------------------------------------------
1 | import Slider from "react-slick";
2 | import { useFetch } from "../hooks/useFetch";
3 | import { settings } from "../constants/testimonialSettings";
4 | import "../styles/testimonials.css";
5 | import Testimonial from "./Testimonial";
6 | import "slick-carousel/slick/slick.css";
7 | import "slick-carousel/slick/slick-theme.css";
8 |
9 | //Placeholder API
10 | const API_URL = `http://jsonplaceholder.typicode.com/comments?_page=1&_limit=8`;
11 |
12 | const Testimonials = () => {
13 | //Getting testimonials data
14 | const { data: testimonials, isLoading } = useFetch(API_URL);
15 |
16 | return (
17 |
18 | Our Testimonials
19 |
20 | {isLoading ? (
21 |
Loading...
22 | ) : (
23 |
24 | {testimonials.map((testimonial) => (
25 |
26 | ))}
27 |
28 | )}
29 |
30 |
31 | );
32 | };
33 |
34 | export default Testimonials;
35 |
--------------------------------------------------------------------------------
/src/components/hooks/useStorage.js:
--------------------------------------------------------------------------------
1 | import { useState, useEffect } from "react";
2 | import {
3 | projectStorage,
4 | projectFirestore,
5 | timestamp,
6 | } from "../../firebase/firebase";
7 |
8 | const useStorage = (file, heading, description) => {
9 | const [progress, setProgress] = useState(0);
10 | const [error, setError] = useState(null);
11 | const [url, setUrl] = useState(null);
12 |
13 | useEffect(() => {
14 | //references
15 | const storageRef = projectStorage.ref(file.name);
16 | const collectionRef = projectFirestore.collection("events");
17 | storageRef.put(file).on(
18 | "state_changed",
19 | (snap) => {
20 | let percentage = (snap.bytesTransferred / snap.totalBytes) * 100;
21 | setProgress(percentage);
22 | },
23 | (err) => {
24 | setError(err);
25 | },
26 | async () => {
27 | const url = await storageRef.getDownloadURL();
28 | const createdAt = timestamp;
29 | const title = heading;
30 | const content = description;
31 | collectionRef.add({ title, url, content, createdAt });
32 | setUrl(url);
33 | }
34 | );
35 | }, [file, heading, description]);
36 | return { progress, url, error };
37 | };
38 |
39 | export default useStorage;
40 |
--------------------------------------------------------------------------------
/src/components/styles/hackathon.css:
--------------------------------------------------------------------------------
1 | .hackathon{
2 | background-position: center;
3 | background-repeat: no-repeat;
4 | background-size: 100% 100%;
5 | background-attachment: fixed;
6 | width: 100%;
7 | height: 100%;
8 | overflow: hidden;
9 | background-repeat: no-repeat;
10 | /* background-image: url("../../assets/Blank\ Backround\ 5.png"); */
11 |
12 |
13 | }
14 | .hackathon__cards{
15 | padding: 2rem 4rem;
16 | align-items: center;
17 | flex-direction: column;
18 | display: flex;
19 | max-width: 1200px;
20 | margin: auto;
21 | }
22 | .hackathon__select{
23 | width: 400px;
24 | outline: none;
25 | color: grey;
26 | padding: 8px 10px;
27 | text-transform: uppercase;
28 | font-weight: 600;
29 | cursor: pointer;
30 | }
31 | .hackathon__select option{
32 | color: #663F3F;
33 | background-color: #12232E;
34 | font-weight: 600;
35 | }
36 | .hackathon__Cards{
37 | flex-wrap: wrap;
38 | margin: 4rem 0;
39 | width: 100%;
40 | height: 100%;
41 | display: flex;
42 | justify-content: center;
43 | }
44 |
45 |
46 | @media(max-width:850px){
47 | .hackathon__cards{
48 | padding: 2rem 1.5rem;
49 | }
50 | }
51 | @media(max-width:450px){
52 | .hackathon__select{
53 | width: 340px;
54 | }
55 | }
--------------------------------------------------------------------------------
/src/components/App.js:
--------------------------------------------------------------------------------
1 | import "./styles/App.css";
2 |
3 | import { HashRouter, Route } from "react-router-dom";
4 | import Home from "./pages/home";
5 | import Events from "./pages/event";
6 | import Hackathon from "./pages/Hackathon";
7 | import Collaboration from "./pages/collaboration";
8 | import Addevent from "./pages/addevent";
9 | import OpenSource from "./pages/openSource";
10 | import Footer from "../components/layout/Footer";
11 | import ScrollButton from "./utilities/ScrollButton";
12 | import Customnav from "./layout/customnavbar";
13 |
14 | function App() {
15 | return (
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 | );
30 | }
31 |
32 | export default App;
33 |
--------------------------------------------------------------------------------
/src/components/styles/Card.css:
--------------------------------------------------------------------------------
1 | .cards {
2 | width: 270px;
3 | padding: 10px;
4 | height: 360px;
5 | background-color: #fff;
6 | border-radius: 20px;
7 | margin: 2rem 2rem;
8 | }
9 | .card__img {
10 | height: 140px;
11 | width: 250px;
12 | border-radius: 20px;
13 | }
14 | .card__info {
15 | padding-top: 10px;
16 | display: flex;
17 | flex-direction: column;
18 | }
19 | .card__infoTxt h4 {
20 | font-size: 1rem;
21 | font-weight: 600;
22 | }
23 | .card__infoTxt h4 span {
24 | font-size: 0.6rem;
25 | background-color: #12232e;
26 | color: white;
27 | padding: 2px 28px;
28 | border-radius: 30px;
29 | text-transform: capitalize;
30 | }
31 | .card__infoTxt p {
32 | font-size: 0.8rem;
33 | margin-bottom: 0.6rem;
34 | }
35 | .card__infoTime {
36 | display: flex;
37 | align-items: center;
38 | }
39 | .card__infoTime-icon {
40 | width: 40px;
41 | height: 40px;
42 | color: black;
43 | }
44 | .card__infoTime-time p {
45 | margin-bottom: 3px;
46 | margin-top: 3px;
47 | margin-left: 4px;
48 | background-color: #12232e;
49 | font-size: x-small;
50 | color: #fff;
51 | text-align: center;
52 | padding: 0 30px;
53 | border-radius: 40px;
54 | }
55 | .card__btn {
56 | width: 100%;
57 | border: none;
58 | outline: none;
59 | color: white;
60 | margin-top: 10px;
61 | background-color: #FFC069;
62 | padding: 4px 0;
63 | border-radius: 30px;
64 | transition: all 0.3s ease;
65 | }
66 | .card__btn:hover {
67 | background-color:#FFC069 ;
68 | }
69 |
--------------------------------------------------------------------------------
/src/components/utilities/ContactStyle.js:
--------------------------------------------------------------------------------
1 | import { makeStyles } from '@material-ui/core/styles';
2 |
3 | export default makeStyles((theme) => ({
4 | root: {
5 | '& .MuiTextField-root': {
6 | margin: theme.spacing(1),
7 | },
8 | },
9 | container: {
10 | padding: theme.spacing(2),
11 | display: 'flex',
12 | justifyContent: 'center',
13 | alignItems: "center"
14 | },
15 | paper: {
16 | padding: theme.spacing(2),
17 | width: theme.spacing(50),
18 | },
19 | form: {
20 | display: 'flex',
21 | flexWrap: 'wrap',
22 | width: "100%",
23 | justifyContent: 'center',
24 | },
25 | buttonSubmit: {
26 | marginBottom: 10,
27 | backgroundColor: "#01bfd9",
28 | color: "#fff"
29 |
30 | },
31 | btnCol: {
32 | backgroundColor: "#132c3c",
33 | color: "#fff",
34 | margin: "1vh",
35 | '&:hover': {
36 | boxShadow: "0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%)",
37 | backgroundColor: "#0b1921",
38 | }
39 | },
40 | clrBtn: {
41 | backgroundColor: "#1193a5",
42 | color: "#fff",
43 | margin: "1vh",
44 | fontWeight: "bold",
45 | '&:hover': {
46 | boxShadow: "0px 2px 4px -1px rgb(0 0 0 / 20%), 0px 4px 5px 0px rgb(0 0 0 / 14%), 0px 1px 10px 0px rgb(0 0 0 / 12%)",
47 | backgroundColor: "#0c6571",
48 | }
49 | }
50 | }));
--------------------------------------------------------------------------------
/src/components/styles/testimonials.css:
--------------------------------------------------------------------------------
1 | #testimonials {
2 | background-color: #fff;
3 | padding: 1rem;
4 | }
5 |
6 | #testimonials h1 {
7 | color: #FFC069;
8 | text-align: center;
9 | }
10 | .testimonial-wrapper {
11 | width: 89vw;
12 | margin: 2rem auto;
13 | position: relative;
14 | }
15 | .tesimonial-item {
16 | background-color: rgb(221, 217, 217);
17 | border-radius: 20px;
18 | padding: 1rem;
19 | display: flex;
20 | justify-content: center;
21 | margin: 2rem;
22 | height: 320px;
23 | transition: all 0.3s ease-in;
24 | }
25 | .tesimonial-item:hover{
26 | background-color: #4A403A;
27 | color: white;
28 | }
29 | .tesimonial-item:hover .quote-icon{
30 | color: #fff;
31 | }
32 | .testimonial-left {
33 | display: flex;
34 | flex-direction: column;
35 | justify-content: space-between;
36 | margin-right: 1rem;
37 | }
38 | .testimonial-left .quote-icon {
39 | font-size: 3rem;
40 | color: #4A403A;
41 | }
42 | .testimonial-left img {
43 | border-radius: 50%;
44 | width: 75px;
45 | }
46 | .testimonial-right{
47 | display: flex;
48 | flex-direction: column;
49 | justify-content: space-between;
50 | }
51 | .testimonial-right p {
52 | font-weight: 600;
53 | margin: 0;
54 | }
55 | .testimonial-icon {
56 | font-size: 5rem;
57 | }
58 | @media (max-width: 1300px) {
59 | .testimonial-wrapper {
60 | width: 80vw;
61 | }
62 | }
63 | @media (max-width: 650px) {
64 | .testimonial-wrapper {
65 | width: 90vw;
66 | }
67 | }
68 |
69 | @media (max-width: 450px) {
70 | .testimonial-wrapper {
71 | margin: 0;
72 | }
73 | .tesimonial-item {
74 | flex-direction: column;
75 | margin: 0.5rem;
76 | }
77 | .testimonial-left {
78 | flex-direction: row-reverse;
79 | }
80 | }
81 |
--------------------------------------------------------------------------------
/src/components/styles/App.css:
--------------------------------------------------------------------------------
1 | .nav,
2 | .nav:hover {
3 | color: inherit;
4 | text-decoration: none;
5 | color: white;
6 | }
7 | a,
8 | a:hover {
9 | text-decoration: none;
10 | }
11 |
12 | .ctr {
13 | margin: auto;
14 | }
15 | .navs {
16 | display: inline-flex;
17 | z-index: 1;
18 | background-color: #4a403a;
19 | }
20 | .fixed {
21 | width: 100%;
22 | position: sticky;
23 | top: 0;
24 | left: 0;
25 | z-index: 1;
26 | transition: 0.3s ease-in-out;
27 | background-color: #4A403A ;
28 | }
29 |
30 | .row-custom {
31 | margin: 0 !important;
32 | }
33 | .margin-card {
34 | margin: 1rem;
35 | margin-bottom: 3rem !important;
36 | }
37 | .event-div {
38 | min-height: 42vh;
39 | width: 80% !important;
40 | }
41 |
42 | .card img {
43 | width: 100%;
44 | height: 60%;
45 | }
46 |
47 | .title-div {
48 | min-height: 21% !important;
49 | }
50 |
51 | .card-header {
52 | margin-bottom: 0 !important;
53 | height: 19%;
54 | border-bottom: none !important;
55 | display: flex;
56 | align-items: center;
57 | padding-left: 1 rem;
58 | }
59 |
60 | .card-banner {
61 | height: 42vh;
62 | }
63 |
64 | .sc-bdvvaa.cmdZFS {
65 | position: fixed;
66 | width: 100%;
67 | left: 95%;
68 | bottom: 80px;
69 | height: 20px;
70 | font-size: 3rem;
71 | z-index: 999;
72 | cursor: pointer;
73 | color: #FFC069;
74 | }
75 |
76 | ::-webkit-scrollbar {
77 | width: 14px;
78 | }
79 |
80 | ::-webkit-scrollbar-track {
81 | background :rgba(32, 32, 32, 1);
82 | }
83 |
84 | ::-webkit-scrollbar-thumb {
85 | background: #696969;
86 | border-radius: 8px;
87 | }
88 |
89 | ::-webkit-scrollbar-thumb:hover {
90 | background-color: #7D7D7D;
91 | }
92 |
93 | @media(max-width:868px) {
94 | .headings-logos-buttons{
95 | width: 100%;
96 | display: flex;
97 | justify-content: space-between;
98 | }
99 | }
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "homepage": "https://codeflow201.github.io/codeflow/",
3 | "name": "codeflow",
4 | "version": "0.1.0",
5 | "private": true,
6 | "dependencies": {
7 | "@emotion/react": "^11.4.1",
8 | "@emotion/styled": "^11.3.0",
9 | "@mui/icons-material": "^5.0.1",
10 | "@mui/material": "^5.0.2",
11 | "@rocktimsaikia/github-card": "^3.0.1",
12 | "@testing-library/jest-dom": "^5.11.9",
13 | "@testing-library/react": "^11.2.5",
14 | "@testing-library/user-event": "^12.7.1",
15 | "axios": "^0.21.4",
16 | "bootstrap": "^4.6.0",
17 | "firebase": "^8.2.10",
18 | "gh-pages": "^3.1.0",
19 | "jquery": "^3.6.0",
20 | "mdbreact": "^5.1.0",
21 | "popper.js": "^1.16.1",
22 | "react": "^17.0.1",
23 | "react-bootstrap": "^1.5.1",
24 | "react-dom": "^17.0.1",
25 | "react-icons": "^4.2.0",
26 | "react-paginate": "^7.1.2",
27 | "react-router-dom": "^5.2.0",
28 | "react-scripts": "^4.0.3",
29 | "react-slick": "^0.28.1",
30 | "react-social-icons": "^5.6.1",
31 | "slick-carousel": "^1.8.1",
32 | "styled-components": "^5.2.3",
33 | "web-vitals": "^1.1.0"
34 | },
35 | "scripts": {
36 | "start": "react-scripts start",
37 | "build": "react-scripts build",
38 | "test": "react-scripts test",
39 | "eject": "react-scripts eject",
40 | "predeploy": "npm run build",
41 | "deploy": "gh-pages -d build"
42 | },
43 | "eslintConfig": {
44 | "extends": [
45 | "react-app",
46 | "react-app/jest"
47 | ]
48 | },
49 | "browserslist": {
50 | "production": [
51 | ">0.2%",
52 | "not dead",
53 | "not op_mini all"
54 | ],
55 | "development": [
56 | "last 1 chrome version",
57 | "last 1 firefox version",
58 | "last 1 safari version"
59 | ]
60 | },
61 | "devDependencies": {
62 | "chokidar": "^3.5.1"
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/src/components/styles/customnav.css:
--------------------------------------------------------------------------------
1 | .navbar.active {
2 | background: linear-gradient(98deg, rgb(66, 2, 194)
3 | 0%, rgb(62, 105, 170) 100%);
4 | }
5 |
6 |
7 |
8 | .navs .navbar-link-css {
9 | color: #fff;
10 | padding-left: 2vh;
11 | padding-right: 2vh;
12 | }
13 | .navbar-link-css:hover{
14 | color: rgb(165, 131, 131);
15 | background: #12232e;
16 | content: '.';
17 | }
18 | .navbar-link-css,
19 | .navbar-link-css:after,
20 | .navbar-link-css:before {
21 | transition: all .5s;
22 | }
23 |
24 | .headings-logos-buttons .nav-dynamic-button {
25 | display: none;
26 | margin: 5px;
27 | }
28 |
29 |
30 |
31 | @media (max-width: 1308px) {
32 | .navs .navbar-link-css {
33 | padding-left: 2vh;
34 | padding-right: 2vh;
35 | }
36 | }
37 |
38 | .justify-content-between #hidden {
39 | display: flex;
40 | }
41 |
42 | @media (max-width: 1140px) {
43 | .navs .navbar-link-css {
44 | padding-left: 2vh;
45 | padding-right: 2vh;
46 | }
47 | }
48 |
49 | @media (max-width: 985px) {
50 | .navs .navbar-link-css {
51 | padding-left: 2vh;
52 | padding-right: 2vh;
53 | }
54 | }
55 |
56 | @media (max-width: 820px) {
57 | .navs .navbar-link-css {
58 | padding-left: 1vh;
59 | padding-right: 1vh;
60 | }
61 | }
62 |
63 | @media (max-width: 868px) {
64 | .navs {
65 | display: none;
66 | }
67 |
68 | .headings-logos-buttons .nav-dynamic-button {
69 | display: inline;
70 | }
71 |
72 | .justify-content-between #hidden {
73 | position: absolute;
74 | left: 0px;
75 | top: 65px;
76 | height: 250px;
77 | max-height: 250px;
78 | width: 100%;
79 | display: flex;
80 | border-top: 1.5px solid white;
81 | flex-direction: column;
82 | align-items: center;
83 | z-index: 2;
84 | }
85 |
86 | .justify-content-between #hidden .navbar-link-css {
87 | margin: 10px !important;
88 | }
89 |
90 | }
91 |
--------------------------------------------------------------------------------
/src/components/constants/testimonialSettings.js:
--------------------------------------------------------------------------------
1 | import { FaChevronLeft, FaChevronRight } from "react-icons/fa";
2 |
3 | const SamplePrevArrow = (props) => {
4 | const { className, onClick } = props;
5 | return (
6 |
23 | );
24 | };
25 | const SampleNextArrow = (props) => {
26 | const { className, onClick } = props;
27 | return (
28 |
45 | );
46 | };
47 |
48 | export const settings = {
49 | infinite: false,
50 | speed: 750,
51 | slidesToShow: 3,
52 | slidesToScroll: 1,
53 | initialSlide: 0,
54 | nextArrow: ,
55 | prevArrow: ,
56 | responsive: [
57 | {
58 | breakpoint: 1300,
59 | settings: {
60 | slidesToShow: 2,
61 | slidesToScroll: 1,
62 | },
63 | },
64 | {
65 | breakpoint: 850,
66 | settings: {
67 | slidesToShow: 1,
68 | slidesToScroll: 1,
69 | },
70 | },
71 | {
72 | breakpoint: 650,
73 | settings: {
74 | slidesToShow: 1,
75 | slidesToScroll: 1,
76 | arrows: false,
77 | },
78 | },
79 | ],
80 | };
81 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Codeflow
2 |
3 | Official website of Codeflow on React and Firebase.
4 |
5 |
6 | ## Prerequisites for Environment Setup
7 |
8 | * [Download and Install Nodejs](https://nodejs.org/en/download/)
9 |
10 | * Open terminal, write the following command and press enter.
11 | ```
12 | $ npm -v
13 | ```
14 | terminal should return your npm version.
15 |
16 | * [Download and install git](https://git-scm.com/downloads)
17 |
18 | ## Environment Setup for CodeFlow
19 |
20 | #### 1. Clone App
21 |
22 | * Make a new folder and open the terminal there.
23 | * Write the following command and press enter.
24 |
25 | ```
26 | $ git clone git@github.com:CodeFlow201/codeflow.git
27 | ```
28 |
29 | #### 2. Install node packages
30 |
31 | * Move inside the cloned folder with name codeflow.
32 | * Write the following command and press enter to download all required node modules.
33 |
34 | ```
35 | $ npm install .
36 | ```
37 |
38 | #### 3. Run Locally
39 |
40 | * While you are still inside the cloned folder, write the following command to run the website locally.
41 |
42 | ```
43 | $ npm run start
44 | ```
45 |
46 | ###### NOTE: The port by default will be ```http://localhost:3000/```
47 |
48 | ## Want to Contribute?
49 |
50 | To start contributing, follow the below guidelines:
51 |
52 | **1.** Fork [this](git@github.com:CodeFlow201/codeflow.git) repository.
53 |
54 | **2.** Follow the Environment setup above.
55 |
56 | **3.** Checkout into a new branch
57 |
58 | $ git checkout -b
59 |
60 | **4.** Make your changes
61 |
62 | **5.** Add and commit your changes
63 |
64 | $ git add . && git commit -m ""
65 |
66 | **6.** Push Code to Github under your branch
67 |
68 | $ git push origin
69 |
70 | ## Contributors
71 |
80 |
--------------------------------------------------------------------------------
/src/components/layout/Footer.js:
--------------------------------------------------------------------------------
1 | import logo from "../../assets/logo.png";
2 | import img from "../../assets/Qr-code.png";
3 | import { Link } from "react-router-dom";
4 | import "../styles/footer.css";
5 |
6 | const Footer = () => {
7 | return (
8 |
67 | );
68 | };
69 |
70 | export default Footer;
71 |
--------------------------------------------------------------------------------
/src/components/pages/Hackathon.js:
--------------------------------------------------------------------------------
1 | import React, { useState } from "react";
2 | import Customnav from "../layout/customnavbar";
3 | import "../styles/hackathon.css";
4 | import img1 from "../../assets/img1.png";
5 | import HackCard from "../utilities/HackCard";
6 | import Card from "../utilities/hackCard.json";
7 |
8 | function Hackathon() {
9 | const [option, setOption] = useState("");
10 | const handleInput = (e) => {
11 | const selectedOne = e.target.value;
12 | setOption(selectedOne);
13 | };
14 | return (
15 | <>
16 |
17 | {/*
*/}
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 | Codeflow
26 |
27 |
known for hackathons!
28 |
29 | Codeflow is an organisatiom whose main motive is to empower
30 | student community by organising webinars, hackathons and open
31 | source events
32 |
33 |
34 |
35 |
36 |
37 |
42 | Past
43 | Ongoing
44 | upcoming
45 |
46 |
47 | {Card.filter((item) => {
48 | if (option === "") {
49 | return item;
50 | } else if (item.cat === option) {
51 | return item;
52 | }
53 | }).map((item) => {
54 | return (
55 |
63 | );
64 | })}
65 |
66 |
67 |
68 | >
69 | );
70 | }
71 |
72 | export default Hackathon;
73 |
--------------------------------------------------------------------------------
/src/components/styles/footer.css:
--------------------------------------------------------------------------------
1 | .footer-styling a {
2 | color: #000 !important;
3 | }
4 | .footer-styling a:hover {
5 | color: #000;
6 | }
7 | footer {
8 | background-color: #edfbfb;
9 | padding: 1rem;
10 | }
11 | footer h3 {
12 | font-size: 1rem;
13 | text-decoration: underline;
14 | font-weight: normal;
15 | }
16 | footer .container {
17 | display: flex;
18 | justify-content: space-around;
19 | max-width: 70%;
20 | }
21 | .footer-link-group {
22 | display: flex;
23 | flex-direction: column;
24 | align-items: flex-start;
25 | }
26 | .footer-link-group a{
27 | margin: 3px;
28 | }
29 | .footer-link-group a:last-child {
30 | border-radius: 5px;
31 | padding: 0 5px;
32 | border : 1px solid black;
33 | }
34 | .footer-logo {
35 | display: flex;
36 | justify-content: center;
37 | align-items: center;
38 | }
39 | .footer-logo h2 {
40 | margin: 0;
41 | }
42 | .footer-logo-text {
43 | margin-left: 0.5rem;
44 | }
45 | @media screen and (max-width: 1200px) {
46 | footer .container {
47 | max-width: 85%;
48 | }
49 | }
50 |
51 | @media screen and (max-width: 992px) {
52 | footer .container {
53 | max-width: 95%;
54 | }
55 | }
56 | @media screen and (max-width: 768px) {
57 | footer .container {
58 | flex-wrap: wrap;
59 | }
60 | .footer-logo {
61 | width: 100%;
62 | margin-bottom: 1rem;
63 | }
64 | }
65 | @media screen and (max-width: 576px) {
66 | footer .container {
67 | flex-wrap: nowrap;
68 | flex-direction: column;
69 | align-items: center;
70 | }
71 | .footer-link-group {
72 | margin: 0.5rem auto;
73 | align-items: center;
74 | }
75 | }
76 |
77 | .footer-link-group a {
78 | position: relative;
79 | color: #000;
80 | text-decoration: none;
81 | }
82 |
83 | .footer-link-group a:hover {
84 | color: #000;
85 | text-decoration: none;
86 | }
87 |
88 | .footer-link-group a::before {
89 | content: "";
90 | position: absolute;
91 | display: block;
92 | width: 100%;
93 | height: 1.75px;
94 | bottom: 0;
95 | left: 0;
96 | background-color: #000;
97 | transform: scaleX(0);
98 | transition: transform 0.3s ease;
99 | }
100 |
101 | .footer-link-group a:hover::before {
102 | transform: scaleX(1);
103 | }
104 |
105 | .social-media-links > h3,
106 | .other-links > h3 ,.footer-link-group > h3 {
107 | background-color: var(--dark);
108 | color: #edfbfb !important;
109 | border-radius: 5px;
110 | padding: 0 5px;
111 | text-decoration: none;
112 | }
113 |
--------------------------------------------------------------------------------
/.github/workflows/codeql-analysis.yml:
--------------------------------------------------------------------------------
1 | # For most projects, this workflow file will not need changing; you simply need
2 | # to commit it to your repository.
3 | #
4 | # You may wish to alter this file to override the set of languages analyzed,
5 | # or to provide custom queries or build logic.
6 | #
7 | # ******** NOTE ********
8 | # We have attempted to detect the languages in your repository. Please check
9 | # the `language` matrix defined below to confirm you have the correct set of
10 | # supported CodeQL languages.
11 | #
12 | name: "CodeQL"
13 |
14 | on:
15 | push:
16 | branches: [ master ]
17 | pull_request:
18 | # The branches below must be a subset of the branches above
19 | branches: [ master ]
20 | schedule:
21 | - cron: '19 16 * * 4'
22 |
23 | jobs:
24 | analyze:
25 | name: Analyze
26 | runs-on: ubuntu-latest
27 | permissions:
28 | actions: read
29 | contents: read
30 | security-events: write
31 |
32 | strategy:
33 | fail-fast: false
34 | matrix:
35 | language: [ 'javascript' ]
36 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
37 | # Learn more:
38 | # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
39 |
40 | steps:
41 | - name: Checkout repository
42 | uses: actions/checkout@v2
43 |
44 | # Initializes the CodeQL tools for scanning.
45 | - name: Initialize CodeQL
46 | uses: github/codeql-action/init@v1
47 | with:
48 | languages: ${{ matrix.language }}
49 | # If you wish to specify custom queries, you can do so here or in a config file.
50 | # By default, queries listed here will override any specified in a config file.
51 | # Prefix the list here with "+" to use these queries and those in the config file.
52 | # queries: ./path/to/local/query, your-org/your-repo/queries@main
53 |
54 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
55 | # If this step fails, then you should remove it and run the build manually (see below)
56 | - name: Autobuild
57 | uses: github/codeql-action/autobuild@v1
58 |
59 | # ℹ️ Command-line programs to run using the OS shell.
60 | # 📚 https://git.io/JvXDl
61 |
62 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
63 | # and modify them (or add more) to build your code if your project
64 | # uses a compiled language
65 |
66 | #- run: |
67 | # make bootstrap
68 | # make release
69 |
70 | - name: Perform CodeQL Analysis
71 | uses: github/codeql-action/analyze@v1
72 |
--------------------------------------------------------------------------------
/src/components/styles/HackCard.css:
--------------------------------------------------------------------------------
1 | .hackCard {
2 | max-width: 300px;
3 | height: 215px;
4 | position: relative;
5 | background-color: rgba(255, 255, 255,0.1);
6 | box-shadow: 0 25px 45px rgba(0,0,0,0.25);
7 | margin: 30px 25px;
8 | padding: 20px 15px;
9 | display: flex;
10 | flex-direction: column;
11 | transition: all 0.5s ease;
12 | cursor: pointer;
13 | color: #663F3F;
14 | backdrop-filter: blur(25px);
15 | }
16 | .hackCard:hover {
17 | height: 350px;
18 | }
19 | .hackCard__img {
20 | position: relative;
21 | width: 260px;
22 | height: 260px;
23 | top: -40px;
24 | left: 6px;
25 | }
26 | .hackCard__img span{
27 | position: absolute;
28 | background-color: #12232E;
29 | color: #fff;
30 | left: -21px;
31 | top: 200px;
32 | font-size: 11px;
33 | font-weight: bold;
34 | transition: all 0.3s ease;
35 | visibility: hidden;
36 | }
37 | .hackCard:hover .hackCard__img img{
38 | transform: scale(1.02);
39 | }
40 | .hackCard__img img {
41 | max-width: 100%;
42 | border-radius: 10px;
43 | transition: all 0.8s ease;
44 | box-shadow: 0px 1px 15px 0px rgba(0,0,0,0.75);
45 | -webkit-box-shadow: 0px 1px 15px 0px rgba(0,0,0,0.75);
46 | -moz-box-shadow: 0px 1px 15px 0px rgba(0,0,0,0.75);
47 | }
48 | .hackCard__content {
49 | position: relative;
50 | margin-top: -140px;
51 | padding: 10px 15px;
52 | text-align: center;
53 | visibility: hidden;
54 | opacity: 0;
55 | transition: all 0.5s ease;
56 | }
57 | .hackCard:hover .hackCard__content {
58 | visibility: visible;
59 | opacity: 1;
60 | margin-top: -40px;
61 | }
62 | .hackCard:hover .hackCard__img span{
63 | top:50px;
64 | visibility: visible;
65 | }
66 | .hackCard h2 {
67 | font-size: 1.2rem;
68 | font-weight: bold;
69 | margin-bottom: 5px;
70 | margin-left: 10px;
71 | }
72 | .hackCard h2 span {
73 | font-size: small;
74 | background-color: #12232e;
75 | padding: 2px 4px;
76 | color:white;
77 | }
78 | .hackCard p {
79 | font-size: 0.9rem;
80 | line-height: 1.2;
81 | margin-bottom: 10px;
82 | }
83 | .hackCard button {
84 | width: 100%;
85 | border: none;
86 | outline: none;
87 | color: white;
88 | margin-top: 10px;
89 | background-color: #12232e;
90 | padding: 4px 0;
91 | border-radius: 5px;
92 | transition: all 0.3s ease;
93 | text-transform: capitalize;
94 | }
95 | .hackCard button:hover {
96 | background-color: #162c3a;
97 | }
98 |
99 | @media (max-width: 800px) {
100 | .hackCard {
101 | height: 350px;
102 | }
103 | .hackCard__content {
104 | visibility: visible;
105 | opacity: 1;
106 | margin-top: -40px;
107 | }
108 | .hackCard__img span{
109 | top:50px;
110 | visibility: visible;
111 | }
112 |
113 | }
114 |
--------------------------------------------------------------------------------
/src/components/pages/collaboration.js:
--------------------------------------------------------------------------------
1 | import "../styles/contact.css";
2 | import logo from "../../assets/logo.png";
3 | import { SocialIcon } from "react-social-icons";
4 |
5 | function Collaboration() {
6 | return (
7 |
8 |
9 |
10 |
Contact Us {" "}
11 |
12 |
13 |
14 |
Any queries, feel free to Contact Us...! {" "}
15 |
16 | {" "}
17 | {" "}
18 |
{" "}
19 |
{" "}
20 |
21 |
25 |
30 |
35 |
41 |
47 |
{" "}
48 |
{" "}
49 |
{" "}
77 |
{" "}
78 |
{" "}
79 |
80 | );
81 | }
82 |
83 | export default Collaboration;
84 |
--------------------------------------------------------------------------------
/src/components/utilities/hackCard.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "img": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
4 | "heading": "Bohat hard 🤘",
5 | "para": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident deserunt magni minima reiciendis aut non dolores deleniti recusandae reprehenderit accusamus.",
6 | "cat": "past",
7 | "category": "webdev",
8 | "timing": "12thAug,5:00pm"
9 | },
10 | {
11 | "img": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
12 | "heading": "Bohat hard 🤘",
13 | "para": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident deserunt magni minima reiciendis aut non dolores deleniti recusandae reprehenderit accusamus.",
14 | "cat": "past",
15 | "category": "webdev",
16 | "timing": "12thAug,5:00pm"
17 | },
18 | {
19 | "img": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
20 | "heading": "Bohat hard 🤘",
21 | "para": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident deserunt magni minima reiciendis aut non dolores deleniti recusandae reprehenderit accusamus.",
22 | "cat": "ongoing",
23 | "category": "webdev",
24 | "timing": "12thAug,5:00pm"
25 | },
26 | {
27 | "img": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
28 | "heading": "Bohat hard 🤘",
29 | "para": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident deserunt magni minima reiciendis aut non dolores deleniti recusandae reprehenderit accusamus.",
30 | "cat": "upcoming",
31 | "category": "webdev",
32 | "timing": "12thAug,5:00pm"
33 | },
34 | {
35 | "img": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
36 | "heading": "Bohat hard 🤘",
37 | "para": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident deserunt magni minima reiciendis aut non dolores deleniti recusandae reprehenderit accusamus.",
38 | "cat": "upcoming",
39 | "category": "webdev",
40 | "timing": "12thAug,5:00pm"
41 | },
42 | {
43 | "img": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
44 | "heading": "Bohat hard 🤘",
45 | "para": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident deserunt magni minima reiciendis aut non dolores deleniti recusandae reprehenderit accusamus.",
46 | "cat": "upcoming",
47 | "category": "webdev",
48 | "timing": "12thAug,5:00pm"
49 | },
50 | {
51 | "img": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
52 | "heading": "Bohat hard 🤘",
53 | "para": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident deserunt magni minima reiciendis aut non dolores deleniti recusandae reprehenderit accusamus.",
54 | "cat": "upcoming",
55 | "category": "webdev",
56 | "timing": "12thAug,5:00pm"
57 | },
58 | {
59 | "img": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
60 | "heading": "Bohat hard 🤘",
61 | "para": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident deserunt magni minima reiciendis aut non dolores deleniti recusandae reprehenderit accusamus.",
62 | "cat": "upcoming",
63 | "category": "webdev",
64 | "timing": "12thAug,5:00pm"
65 | },
66 | {
67 | "img": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
68 | "heading": "Bohat hard 🤘",
69 | "para": "Lorem ipsum dolor sit amet consectetur adipisicing elit. Provident deserunt magni minima reiciendis aut non dolores deleniti recusandae reprehenderit accusamus.",
70 | "cat": "upcoming",
71 | "category": "webdev",
72 | "timing": "12thAug,5:00pm"
73 | }
74 | ]
75 |
--------------------------------------------------------------------------------
/src/components/layout/customnavbar.js:
--------------------------------------------------------------------------------
1 | import React, { useState, useEffect } from "react";
2 | import "../styles/customnav.css";
3 | import logo from "../../assets/logo.png";
4 | import { Navbar } from "react-bootstrap";
5 | import { NavLink, Link } from "react-router-dom";
6 | import { HiOutlineViewList } from "react-icons/hi";
7 | import HomeIcon from "@mui/icons-material/Home";
8 | import GroupAddIcon from "@mui/icons-material/GroupAdd";
9 | import CodeIcon from "@mui/icons-material/Code";
10 | import EventIcon from "@mui/icons-material/Event";
11 | import LaptopIcon from "@mui/icons-material/Laptop";
12 |
13 | const Customnav = (props) => {
14 | const [showLinks, setShowLinks] = useState(false);
15 |
16 | function useWindowSize() {
17 | const [windowSize, setWindowSize] = useState({
18 | width: undefined,
19 | height: undefined,
20 | });
21 |
22 | useEffect(() => {
23 | // Handler to call on window resize
24 | function handleResize() {
25 | // Set window width/height to state
26 | setWindowSize({
27 | width: window.innerWidth,
28 | height: window.innerHeight,
29 | });
30 | }
31 |
32 | window.addEventListener("resize", handleResize);
33 | handleResize();
34 |
35 | return () => window.removeEventListener("resize", handleResize);
36 | }, []);
37 |
38 | return windowSize;
39 | }
40 |
41 | const size = useWindowSize();
42 |
43 | return (
44 |
45 |
46 |
49 |
50 |
51 |
52 |
53 |
setShowLinks(!showLinks)}
58 | />
59 |
60 |
64 | setShowLinks(!showLinks)}
69 | >
70 |
71 | HOME
72 |
73 | setShowLinks(!showLinks)}
78 | >
79 |
80 | EVENTS
81 | {" "}
82 | setShowLinks(!showLinks)}
87 | >
88 |
89 | HACKATHONS
90 | {" "}
91 | setShowLinks(!showLinks)}
96 | >
97 |
98 | OPEN SOURCE
99 | {" "}
100 | setShowLinks(!showLinks)}
105 | >
106 |
107 | COLLABORATION
108 |
109 |
110 |
111 |
112 |
113 | );
114 | };
115 |
116 | export default Customnav;
117 |
--------------------------------------------------------------------------------
/src/components/styles/Home.css:
--------------------------------------------------------------------------------
1 | .Home, .parent,.home__team {
2 | background-position: center;
3 | background-repeat: no-repeat;
4 | background-size: 100% 100%;
5 | width: 100%;
6 | height: 100%;
7 | background-repeat: no-repeat;
8 | }
9 | .Home{
10 | background-image: url("../../assets/Blank\ Backgrounds\ 1.png");
11 | }
12 | .parent {
13 | display: flex;
14 | justify-content: space-around;
15 | align-items: center;
16 | box-sizing: border-box;
17 | padding: 15vh 5vh 15vh 5vh;
18 | }
19 | .daughter img {
20 | width: 735px;
21 | }
22 | .son__Para{
23 | color: #663F3F;
24 | ;
25 | }
26 | .son__Para h3{
27 | font-size: 40px !important;
28 | font-weight:bold;
29 | font-family: "Arial";
30 | }
31 | .son__Para h3 span{
32 | color: #A45D5D;
33 | font-family: "Raleway";
34 | font-size: 80px;
35 | }
36 | .home__about{
37 | background-color: #FFC069;
38 | width: 100%;
39 | color: #fff;
40 | padding: 2.3rem 4rem;
41 | }
42 | .home__aboutInfo{
43 | display: flex;
44 | justify-content: center;
45 | flex-direction: column;
46 | align-items: center;
47 | margin-bottom: 4rem;
48 | }
49 | .home__aboutInfo h3{
50 | font-size: 40px;
51 | }
52 | .home__aboutInfo h3 span{
53 | color: #4A403A;
54 | }
55 | .home__aboutInfo p{
56 | font-size: 20px;
57 | width: 1000px;
58 | margin: auto;
59 | text-align: center;
60 | margin-top: 1rem;
61 | }
62 | .home__aboutCards{
63 | display: flex;
64 | justify-content: space-around;
65 | width: 1000px;
66 | margin:auto;
67 | flex-wrap: wrap;
68 | }
69 | .home__aboutCard1{
70 | background-color: rgb(255, 255, 255);
71 | color: #000000;
72 | padding: 4px;
73 | cursor: pointer;
74 | transition: all 0.3s ease;
75 | border-radius: 5px;
76 | margin-top: 1rem;
77 | }
78 | .home__aboutCard1:hover{
79 | transform: translateY(-6px);
80 | }
81 | .home__aboutCard1 > img{
82 | width: 225px;
83 | height: 200px;
84 | border-radius: 5px;
85 | }
86 | .home__aboutCard1 > h5{
87 | text-align: center;
88 | margin-top: 19px;
89 | margin-bottom: 19px;
90 | font-size: 1rem;
91 | text-transform: capitalize;
92 | font-weight: 600;
93 | }
94 | .home__team{
95 | background-image: url('../../assets/Blank\ Backround\ 5.png');
96 |
97 | background-color: #663F3F;
98 | padding: 3rem 4rem;
99 | }
100 | .home__team h3{
101 | text-align: center;
102 | margin-bottom: 2rem;
103 | color: white;
104 | font-size: 40px;
105 | }
106 | .home__team h3 span{
107 | color: #FFC069;
108 | }
109 | .home__teamCards{
110 | display: flex;
111 | width: 1020px;
112 | margin: auto;
113 | flex-wrap: wrap;
114 | justify-content: center;
115 | }
116 | .home__teamCardsContributor{
117 | margin-top: 4rem;
118 | width: 1020px;
119 | margin: auto;
120 | }
121 | .home__teamCardsContributor h3{
122 | text-align: left;
123 | font-size: 30px;
124 | margin-top: 4rem;
125 | }
126 | @media (max-width: 1612px) {
127 | .son__Para h3{
128 | font-size: 50px;
129 | }
130 | }
131 |
132 | @media (max-width: 1358px) {
133 | .daughter img {
134 | width: 600px;
135 | }
136 | }
137 |
138 | @media (max-width: 1098px) {
139 | .daughter img {
140 | width: 500px;
141 | }
142 | .son__Para h3{
143 | font-size: 35px;
144 | }
145 | .home__aboutInfo p,.home__aboutCards,.home__teamCards,.home__teamCardsContributor{
146 | width: auto;
147 | }
148 | .home__teamCardsContributor h3{
149 | text-align: center;
150 | }
151 | }
152 |
153 | @media (max-width: 920px) {
154 | .daughter {
155 | text-align:center;
156 | max-width: none !important;
157 | padding-top: 5vh;
158 | }
159 | .parent {
160 | display: block;
161 | padding-top: 5.2vh;
162 | }
163 | .son {
164 | max-width: none !important;
165 | text-align: center !important;
166 | }
167 | .son__Para h3 span{
168 | color: #fff;
169 | }
170 | }
171 |
172 | @media (max-width: 650px) {
173 | .daughter img {
174 | width: 400px;
175 | }
176 | }
177 | @media (max-width: 550px) {
178 | .daughter img {
179 | width: 320px;
180 | }
181 | }
182 | @media (max-width: 468px) {
183 | .daughter img {
184 | width: 280px;
185 | }
186 | .home__aboutInfo p{
187 | font-size: medium;
188 | }
189 | }
190 | @media (max-width: 430px) {
191 | .daughter img {
192 | width: 220px;
193 | }
194 | }
195 | @media (max-width: 430px) {
196 | .daughter img {
197 | width: 150px;
198 | }
199 | }
200 |
--------------------------------------------------------------------------------
/src/components/pages/event.js:
--------------------------------------------------------------------------------
1 | import "../styles/event.css";
2 | import { useState } from "react";
3 | import image from "../../assets/calender.png";
4 | import team from "../../assets/team.jpg";
5 | import { BsCalendar } from "react-icons/bs";
6 | import { GoSearch } from "react-icons/go";
7 | import Card from "../utilities/Card";
8 | import jsonData from "../utilities/cardData.json";
9 | import ReactPaginate from "react-paginate";
10 |
11 | const Events = () => {
12 | const [searchValue, setSearchValue] = useState("");
13 | const [card] = useState(jsonData);
14 | const [page, setPage] = useState(0);
15 | const cardperpage = 5;
16 | const pageVisited = page * cardperpage;
17 |
18 | const displayCard = card
19 | .filter((item) => {
20 | if (searchValue === "") {
21 | return item;
22 | } else if (
23 | item.title.toLowerCase().includes(searchValue.toLowerCase()) ||
24 | item.category.toLowerCase().includes(searchValue.toLowerCase())
25 | ) {
26 | return item;
27 | }
28 | return console.log("card success");
29 | })
30 | .slice(pageVisited, pageVisited + cardperpage)
31 | .map((item) => {
32 | return (
33 |
42 | );
43 | });
44 | const pageCount = Math.ceil(card.length / cardperpage);
45 | const changePage = ({ selected }) => {
46 | setPage(selected);
47 | };
48 |
49 | return (
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 | Register Now
58 |
59 |
Heading of the event
60 |
61 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Aut
62 | suscipit temporibus, eaque qui corrupti corporis{" "}
63 |
64 |
Category
65 |
66 |
67 |
68 |
Date: 21stJan,2021
69 |
Time: 4:00pm - 5:00pm
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 | Codeflow believes that the best learning curve for any great
81 | lesson is achieved by Learning-By-Doing technique.
82 | Therefore we
83 | organise various events to cultivate basic learning spirit in
84 | students
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 | setSearchValue(e.target.value)}
99 | />
100 |
101 |
{displayCard}
102 |
112 |
113 |
114 |
115 | );
116 | };
117 |
118 | export default Events;
119 |
--------------------------------------------------------------------------------
/src/components/styles/contact.css:
--------------------------------------------------------------------------------
1 | .contact {
2 | height: auto;
3 | }
4 |
5 | .contact__Packet {
6 | display: flex;
7 | flex-direction: column;
8 | justify-content: center;
9 | align-items: center;
10 | padding: 5rem 5rem;
11 | position: relative;
12 | width: 100%;
13 | position: relative;
14 | }
15 |
16 | .contact__Packet::after {
17 | position: absolute;
18 | content: '';
19 | top: 0;
20 | left: 0;
21 | right: 0;
22 | bottom: 0;
23 | width: 100%;
24 | background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0));
25 | background-size: cover;
26 | z-index: -1;
27 | }
28 |
29 | .contact__Packet h1 {
30 | margin: 0.8rem 0;
31 | font-weight: bold;
32 | color: #663F3F;
33 | }
34 |
35 | .contact__container {
36 | display: flex;
37 | padding: 10px;
38 | border-radius: 15px;
39 | height: auto;
40 | backdrop-filter: blur(7px);
41 | background-color: #4A403A;
42 | border: 1px solid rgba(226, 225, 225, 0.568);
43 | box-shadow: -10px 9px 12px 0px rgba(0, 0, 0, 0.75);
44 | -webkit-box-shadow: -10px 9px 12px 0px rgba(0, 0, 0, 0.75);
45 | -moz-box-shadow: -10px 9px 12px 0px rgba(0, 0, 0, 0.75);
46 | }
47 |
48 | .contactContainer__left {
49 | color: #4A403A;
50 | background-color: #EFEFEF;
51 | flex: 0 1 40%;
52 | padding: 30px;
53 | border-radius: 10px;
54 | display: flex;
55 | flex-direction: column;
56 | justify-content: space-between;
57 | }
58 |
59 | .contactContainer__left h4 {
60 | font-size: 2rem;
61 | font-weight: 700;
62 | }
63 |
64 | .contactContainer__left p {
65 | font-size: 0.9rem;
66 | font-weight: 400;
67 | }
68 |
69 | .contactContainer__leftIcon {
70 | padding: 0 0.4rem !important;
71 | }
72 |
73 | .contact__icon {
74 | color: #fafafa;
75 | }
76 |
77 | .id {
78 | margin: 10px 80px 10px 12px;
79 | }
80 |
81 | .id1 {
82 | margin: 10px -30px 10px -69px;
83 | }
84 |
85 | .id3 {
86 | margin: -90px 10px -91px 42px;
87 | }
88 |
89 | .id2 {
90 | margin: 5px -100px 5px 5px;
91 | }
92 |
93 | form {
94 | padding: 25px;
95 | width: 80%;
96 | }
97 |
98 | .form__first {
99 | display: flex;
100 | flex: 0 0 100%;
101 | width: 100%;
102 | background-color: #4A403A;
103 | }
104 |
105 | .form__first-group {
106 | display: flex;
107 | flex-direction: column;
108 | padding-right: 40px;
109 | flex: 0 1 100%;
110 | margin-bottom: 20px;
111 | }
112 |
113 | .form__first-group label {
114 | font-size: 1rem;
115 | font-weight: 500;
116 | color: #FFFFFF;
117 | }
118 |
119 | .form__first-group input,
120 | .form__first-group textarea {
121 | background: transparent;
122 | border: none;
123 | padding: 8px;
124 | border-bottom: 2px solid rgba(124, 122, 122, 0.493);
125 | outline: none;
126 | font-size: 1rem;
127 | font-weight: 400;
128 | cursor: pointer;
129 | color: #FFFFFF;
130 | transition: all 0.4s ease;
131 | }
132 |
133 | .form__first-group input:hover {
134 | border-bottom: 2px solid #FFC069;
135 | }
136 |
137 | .form__first-group textarea:hover {
138 | border-bottom: 2px solid #FFC069;
139 | }
140 |
141 | .form__first-group input:focus {
142 | border-bottom: 2px solid #FFC069;
143 | }
144 |
145 | .form__first-group textarea:focus {
146 | border-bottom: 2px solid #FFC069;
147 | }
148 |
149 | .form__first-group p {
150 | color: red;
151 | margin-bottom: 0;
152 | }
153 |
154 | .form__btn {
155 | background-color: #FFC069;
156 | color: white;
157 | padding: 6px 30px;
158 | font-size: 1rem;
159 | font-weight: 600;
160 | border: none;
161 | outline: none;
162 | margin-left: auto;
163 | transition: all 0.3s ease;
164 | }
165 |
166 | .form__btn:hover {
167 | transform: scale(1.05);
168 | }
169 |
170 | @media(max-width:900px) {
171 | .contactContainer__leftIcon {
172 | padding: 0 0.3rem !important;
173 | }
174 | }
175 |
176 | @media(max-width:760px) {
177 | .contact__container {
178 | flex-direction: column;
179 | }
180 | }
181 |
182 | @media(max-width:550px) {
183 | .form__first {
184 | flex-direction: column;
185 | }
186 | .contact__container {
187 | width: 350px;
188 | }
189 | form {
190 | width: 100%;
191 | padding: 20px 5px;
192 | }
193 | .contact__Packet h1 {
194 | font-size: 2rem;
195 | }
196 | .contact__Packet::after {
197 | background-position: center;
198 | }
199 | }
--------------------------------------------------------------------------------
/src/components/pages/addevent.js:
--------------------------------------------------------------------------------
1 | import { React, useState, useEffect, useRef } from "react";
2 | import "../styles/App.css";
3 | import Customnav from "../layout/customnavbar";
4 | import { Form, Alert, Button } from "react-bootstrap";
5 | import ProBar from "../utilities/progressbar";
6 |
7 | const Addevent = () => {
8 | const selectedFileRef = useRef();
9 |
10 | const [error, setError] = useState(null);
11 | const [file, setFile] = useState(null);
12 | const [preview, setPreview] = useState(null);
13 | const [fieldData, setFieldData] = useState({
14 | selectedfile: null,
15 | heading: '',
16 | description: '',
17 | });
18 |
19 | const handleSelectedFile = (event) => {
20 | const types = ["image/png", "image/jpeg", "image/jpg"];
21 | let selected = event.target.files[0];
22 |
23 | if (selected && types.includes(selected.type)) {
24 | setFieldData((prev) => ({
25 | ...prev,
26 | selectedfile: selected,
27 | }));
28 | } else {
29 | setError("Please select image of type (png, jpg, jpeg)");
30 | }
31 | };
32 |
33 | const handleChangeFields = (event) => {
34 | setFieldData((prev) => ({
35 | ...prev,
36 | [event.target.name]: event.target.value,
37 | }));
38 | }
39 |
40 | const handleSubmit = (event) => {
41 | event.preventDefault();
42 |
43 | if (!fieldData.selectedfile) {
44 | return setError("Please select image ");
45 | }
46 |
47 | setFile(fieldData.selectedfile);
48 | // empty the field after the form is submitted
49 | selectedFileRef.current.value = '';
50 | setFieldData((prev) => ({
51 | ...prev,
52 | heading: '', description: '',
53 | }));
54 |
55 | setError(null);
56 | };
57 |
58 | useEffect(() => {
59 | if (!fieldData.selectedfile) {
60 | return setPreview(null);
61 | }
62 |
63 | const objectUrl = URL.createObjectURL(fieldData.selectedfile);
64 | setPreview(objectUrl);
65 | // free memory when ever this component is unmounted
66 | return () => URL.revokeObjectURL(objectUrl);
67 | }, [fieldData.selectedfile]);
68 |
69 | return (
70 |
71 |
72 |
73 |
74 |
75 |
76 | {error && (
77 |
{error}
78 | )}
79 |
80 |
81 |
82 | Heading
83 |
90 |
91 |
92 |
93 |
100 |
101 |
102 |
103 | Description:
104 |
111 |
112 |
Submit
113 |
114 |
115 |
116 |
117 | {fieldData.selectedfile && (
118 |
119 | )}
120 | {file && (
121 |
126 | )}
127 |
128 |
129 |
130 |
131 |
132 | );
133 | };
134 |
135 | export default Addevent;
136 |
--------------------------------------------------------------------------------
/src/components/utilities/SocialLinks.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import styled from 'styled-components'
3 |
4 | const Card = () => {
5 | return (
6 |
7 |
8 | Connect on Social Media
9 |
10 |
11 |
12 |
13 |
21 |
22 |
23 |
24 |
25 |
37 |
38 |
39 |
40 |
41 |
52 |
53 |
54 |
55 |
56 |
62 |
63 |
64 |
65 |
66 |
72 |
73 |
74 |
75 |
76 |
77 | )
78 | }
79 | const ContactStyle = styled.div`
80 | padding: 0.5rem 10rem;
81 | color: #353535;
82 | min-height: 90vh;
83 |
84 | `;
85 |
86 | const Hide = styled.div`
87 | overflow: hidden;
88 | display: flex;
89 | justify-content: center;
90 | `;
91 |
92 | const Social = styled.div`
93 | display: flex;
94 | align-items: center;
95 |
96 |
97 | h2 {
98 | margin: 2rem;
99 | text-decoration: none;
100 | }
101 | img{
102 | width: 8vh;
103 |
104 | }
105 | a{
106 | text-decoration: none;
107 | color: #333;
108 | }
109 | .social-btn {
110 | cursor: pointer;
111 | height: 50px;
112 | width: 50px;
113 | font-family: 'Titillium Web', sans-serif;
114 | color: #333;
115 | border-radius: 10px;
116 | box-shadow: 0px 10px 10px rgba(0,0,0,0.1);
117 | background: white;
118 | margin: 5px;
119 | transition: 1s;
120 |
121 | }
122 | .flex-center {
123 | display: flex;
124 | justify-content: center;
125 | align-items: center;
126 | }
127 | .social-btn span {
128 | width: 0px;
129 | overflow: hidden;
130 | transition: 1s;
131 | text-align: center;
132 | }
133 | .social-btn:hover {
134 | width: 150px;
135 | border-radius: 5px;
136 | }
137 | .social-btn:hover span {
138 | padding: 2px;
139 | width: max-content;
140 | }
141 | #linkedin svg {
142 | fill: #0e76a8;
143 | }
144 | #github {
145 | fill: #333;
146 | }
147 | `;
148 | export default Card;
--------------------------------------------------------------------------------
/src/components/styles/event.css:
--------------------------------------------------------------------------------
1 | .event__home1 {
2 | background-position: center;
3 | background-repeat: no-repeat;
4 | background-size: 100% 100%;
5 | width: 100%;
6 | height: auto;
7 | background-position: center;
8 | background-repeat: no-repeat;
9 | background-image: url("../../assets/Blank\ Backround\ 4.png");
10 | /* overflow: hidden; */
11 | }
12 | .events__home2{
13 | background-position: center;
14 | background-repeat: no-repeat;
15 | background-size: 100% 100%;
16 | width: 100%;
17 | height: auto;
18 | background-position: center;
19 | background-repeat: no-repeat;
20 | background-color: #4A403A;
21 | /* background-image: url("../../assets/Blank\ Backgrounds\ 1.png"); */
22 | }
23 | .events__cardOutline {
24 | display: flex;
25 | justify-content: center;
26 | align-items: center;
27 | flex-direction: column;
28 | }
29 | .events__upcomingCard {
30 | background: linear-gradient(to right, #663F3F, #2b304670, #17212c9c);
31 | display: flex;
32 | padding: 20px;
33 | width: 800px;
34 | color: #fff;
35 | margin-top: 4rem;
36 | position: relative;
37 | }
38 | .events__upcomingCard img {
39 | width: 350px;
40 | height: 250px;
41 | border-radius: 20px;
42 | }
43 | .events__upcomingCardinfo {
44 | display: flex;
45 | flex-direction: column;
46 | margin-left: 5px;
47 | }
48 | .events__upcomingCardinfo h2 {
49 | font-size: 1.4rem;
50 | margin-top: 25px;
51 | }
52 | .events__upcomingCardinfo p {
53 | margin-top: 15px;
54 | font-size: small;
55 | padding-right: 3rem;
56 | }
57 | .events__upcomingCard-btn1 {
58 | width: fit-content;
59 | margin-left: auto;
60 | position: absolute;
61 | top: -20px;
62 | right: 10px;
63 | border: none;
64 | border-radius: 25px;
65 | background-color: #A45D5D;
66 | color: #fff;
67 | font-size: medium;
68 | outline: none;
69 | padding: 8px 40px;
70 | }
71 | .events__upcomingCard-btn2 {
72 | width: fit-content;
73 | margin-left: auto;
74 | margin-top: 25px;
75 | border: none;
76 | border-radius: 25px;
77 | background-color: #ff8736;
78 | color: #fff;
79 | font-size: medium;
80 | outline: none;
81 | padding: 2px 20px;
82 | }
83 | .events__upcomingCardTiming {
84 | display: flex;
85 | align-items: center;
86 | justify-content: center;
87 | }
88 | .events__upcomingCardTiming p {
89 | margin: 0;
90 | font-size: x-small;
91 | margin: 4px 15px;
92 | font-weight: bold;
93 | }
94 | .events__upcomingCardIcon {
95 | width: 50px;
96 | height: 50px;
97 | color: black;
98 | }
99 | .event__info{
100 | display: flex;
101 | align-items: center;
102 | width : 880px;
103 | margin: auto;
104 | margin-top: 3rem;
105 | overflow: hidden;
106 | }
107 | .event__infoSvg img{
108 | width: 350px;
109 | height: 350px;
110 | margin-bottom: 10px;
111 | }
112 | .event__infoText{
113 | text-align: center;
114 | color: #000;
115 | }
116 | .event__infoText h3{
117 | font-size: 1.35rem;
118 | }
119 | .event__infoText p{
120 | font-size: 1.1rem;
121 | }
122 | .event__home2Container{
123 | padding: 1rem;
124 | display: flex;
125 | justify-content: center;
126 | align-items: center;
127 | flex-direction: column;
128 | }
129 | .events__search{
130 | display: flex;
131 | align-items: center;
132 | height: 40px;
133 | background-color: #fff;
134 | padding: 15px 10px;
135 | width: 500px;
136 | margin-top: 4rem;
137 | }
138 | .events__searchIcon{
139 | color: #12232E;
140 | }
141 | .events__search > input {
142 | flex: 1;
143 | padding: 5px 20px;
144 | font-size:1.1rem;
145 | border: none;
146 | }
147 | .events__search > input:focus {
148 | outline-width: 0;
149 | }
150 | .events__cards{
151 | display: flex;
152 | padding-top: 2rem;
153 | flex-wrap: wrap;
154 | justify-content: center;
155 | max-width: 1200px;
156 | }
157 | .paginateBtn{
158 | list-style: none;
159 | display: flex;
160 | padding: 10px;
161 | }
162 | .paginateBtn a{
163 | padding: 10px;
164 | margin: 2px;
165 | border: 1px solid #FFC069;
166 | cursor: pointer;
167 | color: black;
168 | background-color: white;
169 | text-decoration: none !important;
170 | }
171 | .paginateBtn a:hover{
172 | background-color: #FFC069;
173 | color: white;
174 | }
175 |
176 |
177 | /* media queries */
178 | @media (max-width: 800px) {
179 | .events__upcomingCard {
180 | width: 700px;
181 | }
182 | .event__info{
183 | width: 760px;
184 | }
185 | }
186 | @media (max-width: 750px) {
187 | /* .events{
188 | height: auto;
189 | } */
190 | .events__upcomingCard {
191 | flex-direction: column;
192 | width: auto;
193 | }
194 | .events__upcomingCard img {
195 | width: 400px;
196 | margin: auto;
197 | height: 250px;
198 | }
199 | .events__upcomingCardTiming {
200 | justify-content: flex-start;
201 | }
202 | .events__upcomingCard-btn1 {
203 | padding: 6px 40px;
204 | top: -25px;
205 | }
206 | .event__info{
207 | flex-direction: column;
208 | width: auto;
209 | }
210 |
211 | }
212 | @media(max-width: 500px){
213 | .events__upcomingCard img {
214 | width: 300px;
215 | }
216 | .events__search{
217 | width: 350px;
218 | }
219 | .events__search > input{
220 | padding: 5px 5px;
221 | font-size: 1rem;
222 | }
223 | .event__home1,.event__home1{
224 | background-size: cover;
225 | }
226 | }
--------------------------------------------------------------------------------
/src/components/utilities/cardData.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "image": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
4 | "title": "Web Development",
5 | "category": "webdev",
6 | "date": "21stJan,2021",
7 | "time": "4:00pm - 5:00pm",
8 | "btn": "Register Now",
9 | "info": "hello there this is a dummy description for the card we are using in event"
10 | },
11 | {
12 | "image": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
13 | "title": "App Dev",
14 | "category": "category",
15 | "date": "21stJan,2021",
16 | "time": "4:00pm - 5:00pm",
17 | "btn": "Register Now",
18 | "info": "hello there this is a dummy description for the card we are using in event"
19 | },
20 | {
21 | "image": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
22 | "title": "App Dev",
23 | "category": "category",
24 | "date": "21stJan,2021",
25 | "time": "4:00pm - 5:00pm",
26 | "btn": "Register Now",
27 | "info": "hello there this is a dummy description for the card we are using in event"
28 | },
29 | {
30 | "image": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
31 | "title": "App Dev",
32 | "category": "category",
33 | "date": "21stJan,2021",
34 | "time": "4:00pm - 5:00pm",
35 | "btn": "Register Now",
36 | "info": "hello there this is a dummy description for the card we are using in event"
37 | },
38 | {
39 | "image": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
40 | "title": "App Dev",
41 | "category": "category",
42 | "date": "21stJan,2021",
43 | "time": "4:00pm - 5:00pm",
44 | "btn": "Register Now",
45 | "info": "hello there this is a dummy description for the card we are using in event"
46 | },
47 | {
48 | "image": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
49 | "title": "App Dev",
50 | "category": "category",
51 | "date": "21stJan,2021",
52 | "time": "4:00pm - 5:00pm",
53 | "btn": "Register Now",
54 | "info": "hello there this is a dummy description for the card we are using in event"
55 | },
56 | {
57 | "image": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
58 | "title": "Machine Learning",
59 | "category": "category",
60 | "date": "21stJan,2021",
61 | "time": "4:00pm - 5:00pm",
62 | "btn": "Register Now",
63 | "info": "hello there this is a dummy description for the card we are using in event"
64 | },
65 | {
66 | "image": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
67 | "title": "Big Data",
68 | "category": "category",
69 | "date": "21stJan,2021",
70 | "time": "4:00pm - 5:00pm",
71 | "btn": "Register Now",
72 | "info": "hello there this is a dummy description for the card we are using in event"
73 | },
74 | {
75 | "image": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
76 | "title": "AI",
77 | "category": "category",
78 | "date": "21stJan,2021",
79 | "time": "4:00pm - 5:00pm",
80 | "btn": "Register Now",
81 | "info": "hello there this is a dummy description for the card we are using in event"
82 | },
83 | {
84 | "image": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
85 | "title": "AI",
86 | "category": "category",
87 | "date": "21stJan,2021",
88 | "time": "4:00pm - 5:00pm",
89 | "btn": "Register Now",
90 | "info": "hello there this is a dummy description for the card we are using in event"
91 | },
92 | {
93 | "image": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
94 | "title": "AI",
95 | "category": "category",
96 | "date": "21stJan,2021",
97 | "time": "4:00pm - 5:00pm",
98 | "btn": "Register Now",
99 | "info": "hello there this is a dummy description for the card we are using in event"
100 | },
101 | {
102 | "image": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
103 | "title": "AI",
104 | "category": "category",
105 | "date": "21stJan,2021",
106 | "time": "4:00pm - 5:00pm",
107 | "btn": "Register Now",
108 | "info": "hello there this is a dummy description for the card we are using in event"
109 | },
110 | {
111 | "image": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
112 | "title": "AI",
113 | "category": "category",
114 | "date": "21stJan,2021",
115 | "time": "4:00pm - 5:00pm",
116 | "btn": "Register Now",
117 | "info": "hello there this is a dummy description for the card we are using in event"
118 | },
119 | {
120 | "image": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
121 | "title": "AI",
122 | "category": "category",
123 | "date": "21stJan,2021",
124 | "time": "4:00pm - 5:00pm",
125 | "btn": "Register Now",
126 | "info": "hello there this is a dummy description for the card we are using in event"
127 | },
128 | {
129 | "image": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
130 | "title": "AI",
131 | "category": "category",
132 | "date": "21stJan,2021",
133 | "time": "4:00pm - 5:00pm",
134 | "btn": "Register Now",
135 | "info": "hello there this is a dummy description for the card we are using in event"
136 | },
137 | {
138 | "image": "https://images.pexels.com/photos/1714208/pexels-photo-1714208.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500",
139 | "title": "Social Media",
140 | "category": "category",
141 | "date": "21stJan,2021",
142 | "time": "4:00pm - 5:00pm",
143 | "btn": "Register Now",
144 | "info": "hello there this is a dummy description for the card we are using in event"
145 | }
146 |
147 | ]
--------------------------------------------------------------------------------
/src/components/pages/home.js:
--------------------------------------------------------------------------------
1 | import "../styles/Home.css";
2 | import img1 from "../../assets/img1.png";
3 | // import Customnav from "../layout/customnavbar";
4 | import team from "../../assets/team.jpg";
5 | import youtube from "../../assets/youtube.png";
6 | import opensource from "../../assets/opensource.jpg";
7 | import TeamCard from "../utilities/TeamCard";
8 | import Testimonials from "../utilities/Testimonials";
9 | import React, { useEffect, useState } from "react";
10 | import axios from "axios";
11 |
12 | function Home() {
13 | const [contributors, setContributors] = useState("");
14 | useEffect(() => {
15 | axios
16 | .get(
17 | "https://api.github.com/repos/codeflow201/codeflow/contributors?q=contributions&order=desc"
18 | )
19 | .then((response) => {
20 | setContributors(response);
21 | // console.log(response.data[0].avatar_url);
22 | // console.log(response.data[0].login);
23 | // console.log(response.data);
24 | });
25 | });
26 |
27 | return (
28 | <>
29 |
30 |
31 |
32 |
33 |
34 | Codeflow
35 |
36 |
Learning must go on!
37 |
38 | Codeflow is an organisatiom whose main motive is to empower
39 | student community by organising webinars, hackathons and open
40 | source events
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 | About Us
53 |
54 |
55 | An initiative to contribute to the Student community by providing
56 | opportunities, resources, and awareness about the possibilities in
57 | the field of software to students & professionals.
58 |
59 |
60 |
61 |
62 |
63 |
64 |
OpenSource
65 |
66 |
67 |
68 |
Community building
69 |
70 |
71 |
72 |
Events and Workshops
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 | Core Team
82 |
83 |
84 |
85 |
90 |
91 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 | Top Contributors
116 |
117 |
118 | {contributors ? (
119 |
120 |
124 |
128 |
132 |
136 |
140 |
144 |
145 | ) : (
146 | ``
147 | )}
148 |
149 |
150 |
151 | >
152 | );
153 | }
154 |
155 | export default Home;
156 |
--------------------------------------------------------------------------------