├── .github └── auto_assign.yml ├── .gitignore ├── .idea ├── .gitignore ├── Social-Scheduler.iml ├── inspectionProfiles │ └── Project_Default.xml ├── misc.xml ├── modules.xml ├── vcs.xml └── workspace.xml ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── Temporary-Backend ├── .env ├── .gitignore ├── controllers │ └── whatsAppControllers.js ├── helper-function │ └── whatsapp-send-message.js ├── package-lock.json ├── package.json ├── routes │ └── whatsapp-routes.js └── src │ └── App.js ├── contribute.md ├── features.json ├── linkedin-automation ├── config.txt └── index.py ├── logo.jpg ├── package-lock.json ├── package.json ├── public ├── _redirects ├── favicon.ico ├── index.html └── robots.txt └── src ├── App.css ├── App.js ├── Detail.css ├── components ├── About.jsx ├── Contact.jsx ├── Default.jsx ├── LandingPage.jsx ├── Signin.jsx ├── UserRegistration.js ├── assets │ ├── css │ │ ├── components │ │ │ └── about_us.css │ │ └── materialize.min.css │ ├── images │ │ ├── HakinCodes.png │ │ ├── about-background.jpg │ │ ├── boyimage.png │ │ ├── facebook.svg │ │ ├── girlimage.png │ │ ├── github.svg │ │ ├── google-icon.svg │ │ ├── instagram.svg │ │ ├── linkedin.svg │ │ ├── temp-logo.jpg │ │ ├── twitter.svg │ │ ├── undraw_Login.svg │ │ └── undraw_team_spirit_hrr4.svg │ └── js │ │ ├── materialize.js │ │ └── materialize.min.js ├── layout │ ├── Footer.jsx │ └── Navbar.jsx └── pages │ ├── 404-Page │ ├── Page_404.css │ └── Page_404.jsx │ └── Contributor │ ├── CardItem.jsx │ └── Cards.jsx ├── contact_illustration.svg ├── data ├── adminList.js └── mentorList.js ├── index.js ├── lib ├── contributers.js └── email.js └── utils └── screenSizes.js /.github/auto_assign.yml: -------------------------------------------------------------------------------- 1 | # Set to true to add reviewers to pull requests 2 | addReviewers: true 3 | 4 | # Set to true to add assignees to pull requests 5 | addAssignees: false 6 | 7 | # A number of reviewers added to the pull request 8 | # Set 0 to add all the reviewers (default: 0) 9 | numberOfReviewers: 1 10 | 11 | # A number of assignees to add to the pull request 12 | # Set to 0 to add all of the assignees. 13 | # Uses numberOfReviewers if unset. 14 | # numberOfAssignees: 2 15 | 16 | # Set to true to add reviewers from different groups to pull requests 17 | useReviewGroups: true 18 | 19 | # A list of reviewers, split into different groups, to be added to pull requests (GitHub user name) 20 | reviewGroups: 21 | projectAdmin: 22 | - anushbhatia 23 | - smaranjitghose 24 | mentors: 25 | - ashishnagpal2498 26 | - abhu-A-J 27 | # Set to true to add assignees from different groups to pull requests 28 | useAssigneeGroups: false -------------------------------------------------------------------------------- /.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 | 25 | .idea/ 26 | 27 | .vscode/ 28 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | # Editor-based HTTP Client requests 5 | /httpRequests/ 6 | -------------------------------------------------------------------------------- /.idea/Social-Scheduler.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/workspace.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | 16 | 17 | 18 | 19 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 1597567038883 40 | 52 | 53 | 54 | 55 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at smaranjitghose@protonmail.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Anush Bhatia 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 |

Social Scheduler

2 | Social Media is everywhere. Who doesn't use it?. Twitter, Instagram, Facebook, Snapchat have evolved to be the means of modern communication. 3 |

4 | 5 | 6 | A project to automatically send invite to all of your social media like LinkedIn, Facebook, email, WhatsApp, Instagram as soon as he finishes filling the form. 7 |

8 | 9 | We can also send deadlines, important meeting announcement. Now no more delays and late candidates on interviews. 10 | 11 |

12 | 13 |

Skills Required

14 | 15 | - ReactJS 16 | - Nodejs 17 | - Python 18 | - Selenium 19 | - API for Various Social Media 20 | 21 |

Open Source Programs we have been a part of

22 | 23 |

HakinCodes

24 |

25 | 26 |

Project Maintainers

27 | 28 |

29 |     30 | 31 |

32 | 33 | 34 |

Smaranjit Ghose              35 | Anush Bhatia

36 | 37 | [![](https://sourcerer.io/fame/smaranjitghose/anushbhatia/Social-Scheduler/images/0)](https://sourcerer.io/fame/smaranjitghose/anushbhatia/Social-Scheduler/links/0)[![](https://sourcerer.io/fame/smaranjitghose/anushbhatia/Social-Scheduler/images/1)](https://sourcerer.io/fame/smaranjitghose/anushbhatia/Social-Scheduler/links/1)[![](https://sourcerer.io/fame/smaranjitghose/anushbhatia/Social-Scheduler/images/2)](https://sourcerer.io/fame/smaranjitghose/anushbhatia/Social-Scheduler/links/2)[![](https://sourcerer.io/fame/smaranjitghose/anushbhatia/Social-Scheduler/images/3)](https://sourcerer.io/fame/smaranjitghose/anushbhatia/Social-Scheduler/links/3)[![](https://sourcerer.io/fame/smaranjitghose/anushbhatia/Social-Scheduler/images/4)](https://sourcerer.io/fame/smaranjitghose/anushbhatia/Social-Scheduler/links/4)[![](https://sourcerer.io/fame/smaranjitghose/anushbhatia/Social-Scheduler/images/5)](https://sourcerer.io/fame/smaranjitghose/anushbhatia/Social-Scheduler/links/5)[![](https://sourcerer.io/fame/smaranjitghose/anushbhatia/Social-Scheduler/images/6)](https://sourcerer.io/fame/smaranjitghose/anushbhatia/Social-Scheduler/links/6)[![](https://sourcerer.io/fame/smaranjitghose/anushbhatia/Social-Scheduler/images/7)](https://sourcerer.io/fame/smaranjitghose/anushbhatia/Social-Scheduler/links/7) 38 | 39 |

Code of Conduct

40 |

41 | 42 |

License

43 |

44 | 45 |

Made with 💖 for open source

46 | 47 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). 48 | -------------------------------------------------------------------------------- /Temporary-Backend/.env: -------------------------------------------------------------------------------- 1 | PORT=5000 2 | TWILIO_ACCOUNT_SID=ACcf94d2b924330099e908e5d0114ae04e 3 | TWILIO_AUTH_TOKEN=353a948834434367305456a755decf6b -------------------------------------------------------------------------------- /Temporary-Backend/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .env 3 | 4 | -------------------------------------------------------------------------------- /Temporary-Backend/controllers/whatsAppControllers.js: -------------------------------------------------------------------------------- 1 | const WA = require('../helper-function/whatsapp-send-message'); 2 | const sendWhatsappMessage = async (req, res) => { 3 | 4 | let message = req.body.Body; 5 | let senderID = req.body.From; 6 | 7 | console.log(message); 8 | console.log(senderID); 9 | 10 | // Write a function to send message back to WhatsApp 11 | await WA.sendMessage('Hello from the other side.', senderID); 12 | 13 | } 14 | 15 | exports.sendWhatsappMessage = sendWhatsappMessage; -------------------------------------------------------------------------------- /Temporary-Backend/helper-function/whatsapp-send-message.js: -------------------------------------------------------------------------------- 1 | var accountSid = process.env.TWILIO_ACCOUNT_SID; // Your Account SID from www.twilio.com/console 2 | var authToken = process.env.TWILIO_AUTH_TOKEN; // Your Auth Token from www.twilio.com/console 3 | 4 | const client = require('twilio')(accountSid, authToken, { 5 | lazyLoading: true 6 | }); 7 | 8 | // Function to send message to WhatsApp 9 | const sendMessage = async (message, senderID) => { 10 | 11 | try { 12 | await client.messages.create({ 13 | to: senderID, 14 | body: message, 15 | from: `whatsapp:+14155238886` 16 | }); 17 | } catch (error) { 18 | console.log(`Error at sendMessage --> ${error}`); 19 | } 20 | }; 21 | 22 | module.exports = { 23 | sendMessage 24 | } -------------------------------------------------------------------------------- /Temporary-Backend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Temporary-Backend", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "nodemon src/App.js" 9 | }, 10 | "keywords": [], 11 | "author": "Rohan Devaki", 12 | "license": "ISC", 13 | "dependencies": { 14 | "body-parser": "^1.19.0", 15 | "dotenv": "^8.2.0", 16 | "express": "^4.17.3" 17 | }, 18 | "devDependencies": { 19 | "nodemon": "^2.0.4" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Temporary-Backend/routes/whatsapp-routes.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const whatsAppControllers = require('../controllers/whatsAppControllers'); 3 | const router = express.Router(); 4 | 5 | router.post('/whatsapp',whatsAppControllers.sendWhatsappMessage ); 6 | 7 | 8 | module.exports = router; -------------------------------------------------------------------------------- /Temporary-Backend/src/App.js: -------------------------------------------------------------------------------- 1 | // external packages 2 | const express = require('express'); 3 | const bodyParser = require('body-parser'); 4 | require('dotenv').config(); 5 | 6 | // Start the webapp 7 | const webApp = express(); 8 | 9 | // Webapp settings 10 | webApp.use(bodyParser.urlencoded({ 11 | extended: true 12 | })); 13 | webApp.use(bodyParser.json()); 14 | 15 | // Server Port 16 | const PORT = process.env.PORT; 17 | 18 | // Home route 19 | webApp.get('/', (req, res) => { 20 | res.send(`Hello World.!`); 21 | }); 22 | 23 | const WA = require('../helper-function/whatsapp-send-message'); 24 | 25 | // Route for WhatsApp 26 | webApp.post('/whatsapp', async (req, res) => { 27 | 28 | let message = req.body.Body; 29 | let senderID = req.body.From; 30 | 31 | console.log(message); 32 | console.log(senderID); 33 | 34 | // Write a function to send message back to WhatsApp 35 | await WA.sendMessage('Hello from the other side.', senderID); 36 | 37 | }); 38 | 39 | // Start the server 40 | webApp.listen(PORT, () => { 41 | console.log(`Server is up and running at ${PORT}`); 42 | }); -------------------------------------------------------------------------------- /contribute.md: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Contributing Guidelines

4 | 5 | 6 | We value all the people who are interested in contributing to Social scheduler . This is required to create a unified development environment. These are mostly guidelines, not rules. Use your best judgement, and feel free to propose changes to this document in a pull request. 7 | 8 | We want your contributions to this project to be as easy and transparent as possible, whether it's: 9 | * Reporting a bug 10 | * Submitting a fix 11 | * Proposing new features 12 | 13 |

Steps

14 | 15 | **1.** Fork [this](https://github.com/anushbhatia/Social-Scheduler.git) repository. 16 | 17 | **2.** Clone the forked repository. 18 | 19 | ``` 20 | git clone --depth 1 https://github.com//Social-Scheduler.git 21 | ``` 22 | 23 | 24 | 25 | **3.** Navigate to the project directory. 26 | 27 | ``` 28 | cd Social-Scheduler 29 | ``` 30 | 31 | **4.** Add a reference to the original repository. 32 | 33 | ``` 34 | git remote add upstream https://github.com/anushbhatia/Social-Scheduler.git 35 | ``` 36 | 37 | **5.** See changes using 38 | 39 | ``` 40 | git remote -v 41 | ``` 42 | 43 | **6.** Create a new branch. 44 | 45 | ``` 46 | git checkout -b 47 | ``` 48 | 49 | **7.** Always take a pull from the upstream repository to your master branch to keep it at par with the main project. 50 | 51 | ``` 52 | git pull upstream master 53 | ``` 54 | 55 | **8.** Make changes in the source code after getting yourself assigned by the mentors. 56 | 57 |

58 | 59 | **9.** Add and then commit your changes. 60 | 61 | ``` 62 | git add . 63 | git commit -m "" 64 | ``` 65 | 66 | **10.** Push your local branch to the remote repository. 67 | 68 | ``` 69 | git push -u origin 70 | ``` 71 | 72 | **11.** Create a Pull Request! 73 | 74 | **12.** Finally, go to your repository in browser and click on `compare and pull requests`. 75 | 76 | **13.** Then add a title and description to your pull request that explains your precious effort. 77 | 78 | 79 | 80 | **14.** Click on `Create Pull Request`. 81 | 82 | 83 | 84 | 85 | **Congratulations!** Sit and relax, you've made your contribution to [Social Scheduler](https://github.com/anushbhatia/Social-Scheduler/) project. 86 | 87 | 88 |

Grading for Contributions

89 | 90 | You will get the following points on the basis of difficulty of the project. 91 | 92 | | Labels | Points | 93 | | -------- |:------:| 94 | | Beginner | 2 | 95 | | Easy | 4 | 96 | | Medium | 7 | 97 | | Hard | 10 | 98 | 99 | 100 | 101 | 102 | *** 103 | 104 | -------------------------------------------------------------------------------- /features.json: -------------------------------------------------------------------------------- 1 | { 2 | "design": "https://www.figma.com/file/PpJW9qriwtS4RgIUSwDdpI/Social-Schedular?node-id=0%3A1" 3 | } -------------------------------------------------------------------------------- /linkedin-automation/config.txt: -------------------------------------------------------------------------------- 1 | your_email@gmail.com 2 | your_password -------------------------------------------------------------------------------- /linkedin-automation/index.py: -------------------------------------------------------------------------------- 1 | import os,random,sys,time 2 | #from urllib.parse import urlparse 3 | from selenium import webdriver 4 | from bs4 import BeautifulSoup 5 | import requests 6 | 7 | browser = webdriver.Chrome('./driver/chromedriver.exe') 8 | 9 | browser.get('https://www.linkedin.com/uas/login') 10 | 11 | file=open('./config.txt') 12 | lines=file.readlines() 13 | username=lines[0] 14 | password=lines[1] 15 | 16 | 17 | elementID = browser.find_element_by_id('username') 18 | elementID.send_keys(username) 19 | 20 | elementID =browser.find_element_by_id('password') 21 | elementID.send_keys(password) 22 | 23 | elementID.submit() 24 | 25 | content=requests.get('https://www.linkedin.com/in/rohan-devaki') 26 | soup = BeautifulSoup(content.text, 'html.parser') 27 | 28 | visitingProfileID='/in/rohan-devaki' 29 | fullLink='https://www.linkedin.com/'+ visitingProfileID 30 | browser.get(fullLink) 31 | 32 | visitedProfiles = [] 33 | profilesQueued=[] 34 | 35 | def getNewProfileIDs(soup,profilesQueued): 36 | profilesID=[] 37 | pav= soup.find('section',{'class':'artdeco-card ember-view'}) 38 | all_links=pav.findAll('a',{'class':'pv-browsemap-section__member ember-view'}) 39 | for link in all_links: 40 | userID=link.get('href') 41 | if(userID not in profilesQueued) and (userID not in visitedProfiles): 42 | profilesID.append(userID) 43 | return profilesID 44 | 45 | profilesQueued=getNewProfileIDs(BeautifulSoup(browser.page_source), profilesQueued) 46 | 47 | while profilesQueued: 48 | try: 49 | visitingProfileID=profilesQueued.pop() 50 | visitedProfiles.append(visitingProfileID) 51 | fullLink='https://www.linkedin.com' + visitingProfileID 52 | browser.get(fullLink) 53 | browser.find_element_by_class_name('artdeco-button__text').click() 54 | 55 | browser.find_element_by_class_name('mr1').click() 56 | 57 | customMessage = "Hello,This is social-sheduler,We would like to connect with you" 58 | elementID=browser.find_element_by_id('custom-message') 59 | elementID.send_keys(customMessage) 60 | 61 | browser.find_element_by_class_name('ml1').click() 62 | 63 | #add the id to visitedUsersFile 64 | with open('visitedUsers.txt','a') as visitedUsersFile: 65 | visitedUsersFile.write(str(visitingProfileID)+ '\n') 66 | visitedUsersFile.close() 67 | 68 | #get noe profiles ID 69 | soup=BeautifulSoup(browser.page_source) 70 | try: 71 | profilesQueued.extend(getNewProfileIDs(soup,profilesQueued)) 72 | except: 73 | print('Continue') 74 | 75 | #pause 76 | time.sleep(random.uniform(5,15)) #otherwise,sleep to make sure that it is not automated process 77 | 78 | if(len(visitedProfiles)%50==0): 79 | print('Visited Profiles:',len(visitedProfiles)) 80 | 81 | if(len(profilesQueued)>10000): 82 | with open('profilesQueued.txt','a') as visitedUsersFile: 83 | visitedUsersFile.write(str(visitingProfileID)+'\n') 84 | visitedUsersFile.close() 85 | print('100,000 Done!!!') 86 | break; 87 | except: 88 | print('error') -------------------------------------------------------------------------------- /logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anushbhatia/Social-Scheduler/d644a92f97d419b79843d448bab246ca805faa70/logo.jpg -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "projects", 3 | "version": "0.1.0", 4 | "private": true, 5 | "proxy": "http://localhost:5000", 6 | "dependencies": { 7 | "@testing-library/jest-dom": "^4.2.4", 8 | "@testing-library/react": "^9.5.0", 9 | "@testing-library/user-event": "^7.2.1", 10 | "anymatch": "^3.1.1", 11 | "axios": "^0.21.1", 12 | "bootstrap": "^4.5.2", 13 | "emailjs-com": "^2.6.3", 14 | "eslint-plugin-import": "^2.22.0", 15 | "firebase": "^7.18.0", 16 | "react": "^16.13.1", 17 | "react-bootstrap": "^1.3.0", 18 | "react-dom": "^16.13.1", 19 | "react-icons": "^3.10.0", 20 | "react-router-dom": "^5.2.0", 21 | "react-scripts": "^3.4.3", 22 | "styled-components": "^5.1.1", 23 | "sweetalert": "^2.1.2" 24 | }, 25 | "scripts": { 26 | "start": "react-scripts start", 27 | "build": "CI= react-scripts build", 28 | "test": "react-scripts test", 29 | "eject": "react-scripts eject" 30 | }, 31 | "husky": { 32 | "hooks": { 33 | "pre-commit": "lint-staged" 34 | } 35 | }, 36 | "lint-staged": { 37 | "*.{ts,js,jsx,css,json}": [ 38 | "./node_modules/.bin/prettier --single-quote --write", 39 | "git add" 40 | ], 41 | "*.{js,,jsx,css,md}": "prettier --write" 42 | }, 43 | "eslintConfig": { 44 | "extends": "react-app" 45 | }, 46 | "browserslist": { 47 | "production": [ 48 | ">0.2%", 49 | "not dead", 50 | "not op_mini all" 51 | ], 52 | "development": [ 53 | "last 1 chrome version", 54 | "last 1 firefox version", 55 | "last 1 safari version" 56 | ] 57 | }, 58 | "description": "This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).", 59 | "main": "index.js", 60 | "keywords": [], 61 | "author": "", 62 | "license": "ISC", 63 | "devDependencies": { 64 | "husky": "^4.3.0", 65 | "lint-staged": "^10.4.0", 66 | "prettier": "2.1.2" 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /public/_redirects: -------------------------------------------------------------------------------- 1 | /* /index.html 200 2 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/anushbhatia/Social-Scheduler/d644a92f97d419b79843d448bab246ca805faa70/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 18 | 22 | 26 | 27 | 36 | Social Scheduler 37 | 38 | 39 | 40 |
41 | 42 | 52 | 53 | 58 | 63 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /src/App.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Lobster&display=swap'); 2 | 3 | .contact-label { 4 | font-family: 'Karla', sans-serif; 5 | letter-spacing: 1px; 6 | } 7 | 8 | ::placeholder { 9 | font-family: 'Karla', sans-serif; 10 | letter-spacing: 1px; 11 | } 12 | 13 | /* Header */ 14 | .navbar{ 15 | box-shadow: 0 .5rem 1rem rgba(0,0,0,.15); 16 | display: flex; 17 | padding: 0.4rem 3rem; 18 | align-items: stretch; 19 | } 20 | 21 | .logo{ 22 | margin: auto 0.3rem; 23 | border-radius: 100%; 24 | width:3rem; 25 | } 26 | 27 | .navbar-brand{ 28 | font-family: 'Lobster', cursive; 29 | font-size: 1.8rem; 30 | color:#000; 31 | } 32 | .nav-item{ 33 | margin: auto 1.2vw 1rem; 34 | font-size: 1.1rem; 35 | line-height: 0.8; 36 | position: relative; 37 | } 38 | 39 | .nav-link{ 40 | margin: 0.5rem auto auto; 41 | font-family: Verdana, sans-serif; 42 | } 43 | 44 | .dropdown-menu{ 45 | line-height: 2; 46 | } 47 | 48 | @media screen and (min-width:992px) { 49 | .nav-item::after{ 50 | content:''; 51 | position: absolute; 52 | left:40%; 53 | background-color: #3595a5; 54 | margin: 0.1rem auto; 55 | height: 3px; 56 | width:0; 57 | transition: transform 0.4s ease; 58 | } 59 | .nav-item:hover::after{ 60 | width:17px; 61 | transform: scaleX(2); 62 | } 63 | } 64 | 65 | @media screen and (max-width:992px){ 66 | .navbar{ 67 | padding: 0.5rem 1rem; 68 | } 69 | .nav-item{ 70 | margin: 1rem auto; 71 | } 72 | .dropdown-menu{ 73 | border: none; 74 | } 75 | } 76 | 77 | @media screen and (max-width:345px){ 78 | .navbar-brand{ 79 | font-size: 1.5rem; 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /src/App.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import './App.css'; 3 | import { Route, Switch } from 'react-router-dom'; 4 | import LandingPage from './components/LandingPage'; 5 | import Default from './components/Default'; 6 | import Contact from './components/Contact'; 7 | import AboutUs from './components/About'; 8 | import Navbar from './components/layout/Navbar'; 9 | import Footer from './components/layout/Footer'; 10 | import Signin from './components/Signin'; 11 | import UserRegister from './components/UserRegistration'; 12 | import { default as Contributors } from './components/pages/Contributor/Cards'; 13 | 14 | function App() { 15 | return ( 16 | <> 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |