├── .husky ├── .gitignore └── pre-commit ├── .nvmrc ├── .npmrc ├── .eslintignore ├── static ├── team.webp ├── favicon.ico ├── COPS-Logo.webp ├── aboutus │ ├── 1.webp │ ├── 2.webp │ ├── 3.webp │ ├── 4.webp │ ├── 4_2.webp │ ├── 1_md.webp │ ├── 1_sm.webp │ ├── 2_md.webp │ ├── 2_sm.webp │ ├── 3_md.webp │ ├── 3_sm.webp │ ├── 4_md.webp │ ├── 4_sm.webp │ ├── news.webp │ ├── victim-collage.webp │ └── youtube-thumbnail.webp ├── blog │ ├── JAVA.webp │ ├── VUE.webp │ ├── WEB.webp │ ├── Nodejs.webp │ ├── React.webp │ ├── django.webp │ ├── github.webp │ ├── FRONTEND.webp │ ├── Flutter.webp │ ├── android.webp │ ├── backend.webp │ ├── metamask.webp │ ├── about-hero.webp │ ├── git-github.webp │ ├── linux-logo.webp │ ├── web dev basic.webp │ └── marc-olivier-jodoin-nqoinj-ttqm-unsplash.webp ├── home │ ├── hackalog.webp │ ├── litehai.webp │ ├── previewer.webp │ ├── tpcportal.webp │ ├── discordbot.webp │ ├── studyportal.webp │ ├── telegrambot.webp │ └── cops-website.webp ├── contact │ └── iit-varanasi.webp └── shapes │ ├── triangle.svg │ ├── hash.svg │ └── waves.svg ├── assets ├── Jura-VariableFont_wght.ttf ├── LibreBaskerville-Regular.ttf ├── Nunito-VariableFont_wght.ttf └── variables.scss ├── .prettierrc ├── netlify.toml ├── layouts └── default.vue ├── .editorconfig ├── components ├── sampleButton.vue ├── icon.vue ├── grids │ └── PostsGrid.vue ├── about-us │ ├── aboutuscard.vue │ ├── achievementslogo.vue │ ├── youtube.vue │ ├── aboutuslogo.vue │ └── carousel │ │ ├── controls.vue │ │ └── carousel-slide.vue ├── contact-us │ ├── map.vue │ ├── discord │ │ └── online.vue │ └── social.vue ├── LoadingSpinner.vue ├── cards │ ├── PostCard.vue │ └── GenericCard.vue ├── MainSection.vue ├── Footer.vue ├── SiteHero.vue ├── Home │ ├── Hero.vue │ └── projectCard.vue ├── sdgCard.vue ├── navbar.vue └── Particles.vue ├── .github ├── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md ├── pull_request_template.md └── workflows │ └── ci.yml ├── tsconfig.json ├── helper.js ├── .eslintrc.js ├── windi.config.ts ├── content ├── blog │ ├── csoc21-frontend-week2.md │ ├── csoc21-frontend-week1.md │ ├── csoc21-backend-week4.md │ ├── csoc21-frontend-week3.md │ ├── csoc21-backend-week5.md │ ├── csoc21-frontend.md │ ├── csoc21-backend.md │ ├── csoc21-frontend-week0.md │ ├── express.md │ ├── django.md │ ├── flutter.md │ ├── native-android.md │ ├── web-development-basics.md │ ├── csoc21-frontend-week0-Web-Dev-Basics.md │ ├── csoc21-frontend-week3-Native-Android.md │ ├── csoc21-frontend-week0-GitGitHub.md │ ├── csoc21-frontend-week2-Flutter.md │ ├── csoc21-backend-week4-Django.md │ ├── csoc21-frontend-week2-Native-Android.md │ ├── inter-iit-consensys-mid-prep.md │ ├── csoc21-backend-week4-Express.md │ ├── csoc21-backend-week5-Express-REST-Framework.md │ ├── csoc21-frontend-week1-Native-Android.md │ ├── csoc21-frontend-week0-Linux.md │ └── csoc21-frontend-week3-Flutter.md ├── contacts │ └── socialMedia.json ├── index │ └── projectData.yml └── alums │ └── alums.json ├── .gitignore ├── package.json ├── pages ├── contact │ └── index.vue ├── blog │ ├── index.vue │ └── _singlePost.vue ├── index.vue └── aboutus │ └── index.vue ├── CONTRIBUTING.md ├── nuxt.config.ts ├── CODE_OF_CONDUCT.md └── .all-contributorsrc /.husky/.gitignore: -------------------------------------------------------------------------------- 1 | _ 2 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | lts/fermium 2 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | shamefully-hoist=true 2 | -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | ./assets/**/** 2 | ./static/**/** 3 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | pnpm format && pnpm lint 3 | -------------------------------------------------------------------------------- /static/team.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/team.webp -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/favicon.ico -------------------------------------------------------------------------------- /static/COPS-Logo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/COPS-Logo.webp -------------------------------------------------------------------------------- /static/aboutus/1.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/aboutus/1.webp -------------------------------------------------------------------------------- /static/aboutus/2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/aboutus/2.webp -------------------------------------------------------------------------------- /static/aboutus/3.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/aboutus/3.webp -------------------------------------------------------------------------------- /static/aboutus/4.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/aboutus/4.webp -------------------------------------------------------------------------------- /static/blog/JAVA.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/blog/JAVA.webp -------------------------------------------------------------------------------- /static/blog/VUE.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/blog/VUE.webp -------------------------------------------------------------------------------- /static/blog/WEB.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/blog/WEB.webp -------------------------------------------------------------------------------- /static/aboutus/4_2.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/aboutus/4_2.webp -------------------------------------------------------------------------------- /static/blog/Nodejs.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/blog/Nodejs.webp -------------------------------------------------------------------------------- /static/blog/React.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/blog/React.webp -------------------------------------------------------------------------------- /static/blog/django.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/blog/django.webp -------------------------------------------------------------------------------- /static/blog/github.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/blog/github.webp -------------------------------------------------------------------------------- /static/aboutus/1_md.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/aboutus/1_md.webp -------------------------------------------------------------------------------- /static/aboutus/1_sm.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/aboutus/1_sm.webp -------------------------------------------------------------------------------- /static/aboutus/2_md.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/aboutus/2_md.webp -------------------------------------------------------------------------------- /static/aboutus/2_sm.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/aboutus/2_sm.webp -------------------------------------------------------------------------------- /static/aboutus/3_md.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/aboutus/3_md.webp -------------------------------------------------------------------------------- /static/aboutus/3_sm.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/aboutus/3_sm.webp -------------------------------------------------------------------------------- /static/aboutus/4_md.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/aboutus/4_md.webp -------------------------------------------------------------------------------- /static/aboutus/4_sm.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/aboutus/4_sm.webp -------------------------------------------------------------------------------- /static/aboutus/news.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/aboutus/news.webp -------------------------------------------------------------------------------- /static/blog/FRONTEND.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/blog/FRONTEND.webp -------------------------------------------------------------------------------- /static/blog/Flutter.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/blog/Flutter.webp -------------------------------------------------------------------------------- /static/blog/android.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/blog/android.webp -------------------------------------------------------------------------------- /static/blog/backend.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/blog/backend.webp -------------------------------------------------------------------------------- /static/blog/metamask.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/blog/metamask.webp -------------------------------------------------------------------------------- /static/home/hackalog.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/home/hackalog.webp -------------------------------------------------------------------------------- /static/home/litehai.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/home/litehai.webp -------------------------------------------------------------------------------- /static/home/previewer.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/home/previewer.webp -------------------------------------------------------------------------------- /static/home/tpcportal.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/home/tpcportal.webp -------------------------------------------------------------------------------- /static/blog/about-hero.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/blog/about-hero.webp -------------------------------------------------------------------------------- /static/blog/git-github.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/blog/git-github.webp -------------------------------------------------------------------------------- /static/blog/linux-logo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/blog/linux-logo.webp -------------------------------------------------------------------------------- /static/home/discordbot.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/home/discordbot.webp -------------------------------------------------------------------------------- /static/home/studyportal.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/home/studyportal.webp -------------------------------------------------------------------------------- /static/home/telegrambot.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/home/telegrambot.webp -------------------------------------------------------------------------------- /static/blog/web dev basic.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/blog/web dev basic.webp -------------------------------------------------------------------------------- /static/home/cops-website.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/home/cops-website.webp -------------------------------------------------------------------------------- /assets/Jura-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/assets/Jura-VariableFont_wght.ttf -------------------------------------------------------------------------------- /static/contact/iit-varanasi.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/contact/iit-varanasi.webp -------------------------------------------------------------------------------- /assets/LibreBaskerville-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/assets/LibreBaskerville-Regular.ttf -------------------------------------------------------------------------------- /assets/Nunito-VariableFont_wght.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/assets/Nunito-VariableFont_wght.ttf -------------------------------------------------------------------------------- /static/aboutus/victim-collage.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/aboutus/victim-collage.webp -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "singleQuote": true, 4 | "tabWidth": 2, 5 | "vueIndentScriptAndStyle": false 6 | } 7 | -------------------------------------------------------------------------------- /static/aboutus/youtube-thumbnail.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/aboutus/youtube-thumbnail.webp -------------------------------------------------------------------------------- /static/blog/marc-olivier-jodoin-nqoinj-ttqm-unsplash.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/COPS-IITBHU/sdg-site/HEAD/static/blog/marc-olivier-jodoin-nqoinj-ttqm-unsplash.webp -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build.environment] 2 | NPM_FLAGS = "--prefix=/dev/null" 3 | NODE_VERSION = "14" 4 | 5 | [build] 6 | publish = "dist" 7 | command = "npx pnpm i --store=node_modules/.pnpm-store && npx pnpm build" 8 | -------------------------------------------------------------------------------- /static/shapes/triangle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /layouts/default.vue: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /components/sampleButton.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 26 | -------------------------------------------------------------------------------- /components/icon.vue: -------------------------------------------------------------------------------- 1 | 7 | 17 | 18 | 29 | -------------------------------------------------------------------------------- /static/shapes/hash.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: FEATURE 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2018", 4 | "module": "ESNext", 5 | "importHelpers": true, 6 | "moduleResolution": "Node", 7 | "lib": ["ESNext", "ESNext.AsyncIterable", "DOM"], 8 | "esModuleInterop": true, 9 | "allowJs": true, 10 | "sourceMap": true, 11 | "strict": true, 12 | "noEmit": true, 13 | "experimentalDecorators": true, 14 | "baseUrl": ".", 15 | "jsx": "preserve", 16 | "paths": { 17 | "~/*": ["./*"], 18 | "@/*": ["./*"] 19 | }, 20 | "types": [ 21 | "@types/node", 22 | "@nuxt/types", 23 | "@nuxt/content", 24 | "@nuxtjs/axios", 25 | "@nuxt/image", 26 | "unplugin-vue2-script-setup/types" 27 | ] 28 | }, 29 | "exclude": ["node_modules", ".nuxt", "dist"], 30 | "vueCompilerOptions": { 31 | "target": 2, 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /helper.js: -------------------------------------------------------------------------------- 1 | export const setPageData = (store, { resource, slug }) => { 2 | if (process.browser) { 3 | setTimeout(() => { 4 | store.dispatch('set', { resource, slug }) 5 | }, 350) 6 | } else { 7 | store.dispatch('set', { resource, slug }) 8 | } 9 | } 10 | 11 | export const fullUrl = () => { 12 | return `${window.location.protocol}//${window.location.host}/${window.location.pathname}` 13 | } 14 | 15 | export const getFormattedDate = (date) => { 16 | const months = [ 17 | 'January', 18 | 'February', 19 | 'March', 20 | 'April', 21 | 'May', 22 | 'June', 23 | 'July', 24 | 'August', 25 | 'September', 26 | 'October', 27 | 'November', 28 | 'December' 29 | ] 30 | const dateObj = new Date(date) 31 | return `${ 32 | months[dateObj.getMonth()] 33 | } ${dateObj.getDate()}, ${dateObj.getFullYear()}` 34 | } 35 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | browser: true, 5 | node: true, 6 | }, 7 | extends: [ 8 | 'plugin:vuejs-accessibility/recommended', 9 | 'plugin:nuxt/recommended', 10 | '@nuxtjs/eslint-config-typescript', 11 | 'prettier', 12 | ], 13 | plugins: ['vuejs-accessibility', 'prettier'], 14 | // add your custom rules here 15 | rules: { 16 | 'no-console': 'warn', 17 | 'vue/singleline-html-element-content-newline': 0, 18 | 'vue/html-self-closing': 0, 19 | 'vue/html-closing-bracket-newline': 0, 20 | 'vue/html-indent': ['warn', 2, { baseIndent: 1 }], 21 | }, 22 | parserOptions: { 23 | parser: '@typescript-eslint/parser', 24 | }, 25 | globals: { 26 | $nuxt: true, 27 | defineProps: 'readonly', 28 | defineEmits: 'readonly', 29 | defineExpose: 'readonly', 30 | withDefaults: 'readonly', 31 | }, 32 | }; 33 | -------------------------------------------------------------------------------- /windi.config.ts: -------------------------------------------------------------------------------- 1 | import lineClamp from 'windicss/plugin/line-clamp'; 2 | import typo from 'windicss/plugin/typography'; 3 | 4 | export default { 5 | darkMode: 'class', 6 | plugins: [typo, lineClamp], 7 | scan: { 8 | dirs: ['./'], 9 | exclude: ['node_modules', 'dist', '.git', '.github', '.nuxt'], 10 | }, 11 | safelist: 'prose prose-sm m-auto text-left', 12 | theme: { 13 | extend: { 14 | colors: { 15 | 'bg-color': '#000', 16 | 'text-color': '#fff', 17 | 'text-accent-color': '#0cbc8b', 18 | 'accent-color': '#08fdd8', 19 | 'blob-color-1': '#005c43', 20 | 'blob-color-2': '#0cbc8b', 21 | 'blob-color-3': '#08fdd8', 22 | }, 23 | spacing: { 24 | half: '50%', 25 | '1/20': '5%', 26 | '1/10': '10%', 27 | '2/5': '40%', 28 | '3/5': '60%', 29 | '4/5': '80%', 30 | }, 31 | }, 32 | fontFamily: { 33 | display: ['Nunito', 'sans-serif'], 34 | heading: ['Jura', 'sans-serif'], 35 | cardtopic: ['Libre Baskerville', 'serif'], 36 | }, 37 | }, 38 | }; 39 | -------------------------------------------------------------------------------- /content/blog/csoc21-frontend-week2.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: CSOC'21 Dev Frontend Week 2 3 | date: 2021-06-15T11:51:59.091Z 4 | description: 'The second week moves onto some advanced topics development continuing with our previous tracks.' 5 | parentBlog: CSOC'21 Dev Frontend 6 | author: COPS SDG 7 | featureImage: /blog/FRONTEND.webp 8 | --- 9 | 10 | # Week 2 11 | 12 | This week, we'll jump with the some advanced topics development continuing with our previous tracks : 13 | 14 | 1. Android Development 15 | 2. Web Development 16 | 3. Cross Platform Development using Flutter 17 | 18 | Having knowledge of the previous week is necessary since that covered basics of UI and UX for the respective track 19 | 20 | There's a project in each track to finish by the end of this week (June 21), so get your tools back in shape! 21 | 22 | You may choose to compete in any number of tracks. 23 | 24 | #### Topics for Week 2 25 | 26 | 1. [Android Development](csoc21-frontend-week2-Native-Android) 27 | 2. [Web Development](csoc21-frontend-week2-Web-Development) 28 | 3. [Cross Platform Development using Flutter](csoc21-frontend-week2-Flutter) 29 | -------------------------------------------------------------------------------- /content/blog/csoc21-frontend-week1.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: CSOC'21 Dev Frontend Week 1 3 | date: 2021-06-07T11:51:59.091Z 4 | description: 'The first week into development, that familiarizes you with basics of development' 5 | parentBlog: CSOC'21 Dev Frontend 6 | author: COPS SDG 7 | featureImage: /blog/FRONTEND.webp 8 | --- 9 | 10 | # Week 1 11 | 12 | This week, we'll jump with the basics of development with three tracks - 13 | 14 | 1. Android Development 15 | 2. Web Development 16 | 3. Cross Platform Development using Flutter 17 | 18 | Having knowledge of the previous week is necessary since Git remains highly used in this week. If you think you're weak in any of the topics, then try to revise them. 19 | 20 | There's a basic project in each track as well to finish by the end of this week (June 13), so get your tools back in shape! 21 | 22 | You may choose to compete in any number of tracks. 23 | 24 | #### Topics for Week 1 25 | 26 | 1. [Android Development](csoc21-frontend-week1-Native-Android) 27 | 2. [Web Development](csoc21-frontend-week1-Web-Development) 28 | 3. [Cross Platform Development using Flutter](csoc21-frontend-week1-Flutter) 29 | -------------------------------------------------------------------------------- /content/blog/csoc21-backend-week4.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: CSOC'21 Dev Backend Week 4 3 | date: 2020-06-22T11:51:59.091Z 4 | description: "Welcome to CSoC'21 Dev! Here's all the resources and tasks you need to know, complete, and focus on for every week." 5 | parentBlog: CSOC'21 Dev Backend 6 | author: COPS SDG 7 | featureImage: /blog/backend.webp 8 | --- 9 | 10 | # Week 4 11 | 12 | After completing the third task now you would be comfortable with APIs and GET, POST, PUT, PATCH and DELETE requests. But now you would want to know how the back end server was made. So, let's change our gears and head on towards learning some back-end stuff. 13 | 14 | This week you will learn about two most popular backend frameworks **Django** and **Express,** both these framework are known for high customizability. For completing this task you obviously need some knowledge of frontend. 15 | 16 | **Pre-requisites:** [Week-1 (Web development)](/blog/csoc21-frontend-week1-Web-Development) 17 | 18 | You may choose to compete in any number of tracks. 19 | 20 | #### Topics for Week 4 21 | 22 | 1. [Django](/blog/csoc21-backend-week4-Django) 23 | 2. [Express](/blog/csoc21-backend-week4-Express) 24 | -------------------------------------------------------------------------------- /content/contacts/socialMedia.json: -------------------------------------------------------------------------------- 1 | { 2 | "items": [ 3 | { 4 | "name": "Facebook", 5 | "url": "https://www.facebook.com/cops.iitbhu", 6 | "icon": "mdi:facebook", 7 | "height": 32, 8 | "width": 32 9 | }, 10 | { 11 | "name": "Linkedin", 12 | "url": "https://www.linkedin.com/company/cops-iitbhu", 13 | "icon": "mdi:linkedin", 14 | "height": 32, 15 | "width": 32 16 | }, 17 | { 18 | "name": "Github", 19 | "url": "https://github.com/COPS-IITBHU", 20 | "icon": "mdi:github", 21 | "height": 32, 22 | "width": 32 23 | }, 24 | { 25 | "name": "Youtube", 26 | "url": "https://www.youtube.com/channel/UC01TZlNfu29QgG4FmUqVsdg", 27 | "icon": "mdi:youtube", 28 | "height": 32, 29 | "width": 32 30 | }, 31 | { 32 | "name": "Instagram", 33 | "url": "https://instagram.com/cops.iitbhu", 34 | "icon": "mdi:instagram", 35 | "height": 32, 36 | "width": 32 37 | }, 38 | { 39 | "name": "Gmail", 40 | "url": "mailto:iitbhu.cops@gmail.com", 41 | "icon": "mdi:gmail", 42 | "height": 32, 43 | "width": 32 44 | } 45 | ] 46 | } 47 | -------------------------------------------------------------------------------- /components/grids/PostsGrid.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 44 | 45 | 53 | -------------------------------------------------------------------------------- /content/blog/csoc21-frontend-week3.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: CSOC'21 Dev Frontend Week 3 3 | date: 2021-06-22T11:51:59.091Z 4 | description: 'The last week to enable you to build a successful frontend for your application as well as be called a Frontend Dev' 5 | parentBlog: CSOC'21 Dev Frontend 6 | author: COPS SDG 7 | featureImage: /blog/FRONTEND.webp 8 | --- 9 | 10 | # Week 3 11 | 12 | This week will be the last week for Frontend Development track after this week you will be aware of all the design patters and methods to build a successful frontend for your application as well as be called a Frontend Dev 13 | 14 | The tasks are based off last weeks assignment so you can will be building better and more complex applications out of the simple applications for Todo that you built during last week. 15 | 16 | There's a project in each track to finish by the end of this week (June 27), so get your tools back in shape! 17 | 18 | You may choose to compete in any number of tracks. 19 | 20 | #### Topics for Week 3 21 | 22 | 1. [Flutter (Network Calls)](csoc21-frontend-week3-Flutter) 23 | 2. [Javascript Framework VueJS](csoc21-frontend-week3-VueJS) 24 | 3. [JavaScript Library React](csoc21-frontend-week3-React) 25 | 4. [Android (Network Calls)](csoc21-frontend-week3-Native-Android) 26 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: BUG 5 | labels: bug, needs triage 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | 12 | ## Expected Behavior 13 | 14 | 15 | 16 | ## Current Behavior 17 | 18 | 19 | 20 | ## Possible Solution 21 | 22 | 23 | 24 | ## Steps to Reproduce (for bugs) 25 | 26 | 27 | 1. 28 | 2. 29 | 3. 30 | 4. 31 | 32 | ## Your Environment 33 | 34 | * Version used: 35 | * Environment name and version (e.g. Node 8): 36 | * Operating System and version: 37 | * Link to your project: 38 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 2 | ## Description 3 | 4 | 5 | 6 | ## Fixes 7 | 8 | 9 | 10 | Fixes #[issue number] by @[issue author] 11 | 12 | ## Types of changes 13 | 14 | - [ ] Bug/Hot fix (non-breaking change which fixes an issue) 15 | - [ ] New feature (non-breaking change which adds functionality) 16 | - [ ] Refactoring Old Code ( non-breaking change replacing already existing code ) 17 | - [ ] Breaking change (fix or feature that would cause existing functionality to change) 18 | 19 | ## Checklist: 20 | 21 | 22 | - [ ] I have read the **CONTRIBUTING** guidelines in repository. 23 | - [ ] My pull request has a descriptive title and is attached to an existing issue. 24 | - [ ] I haven't repeated the code and it follows established code style of repository. 25 | - [ ] My branch is up-to-date with upstream branch. 26 | - [ ] All new and existing tests passed. 27 | -------------------------------------------------------------------------------- /components/about-us/aboutuscard.vue: -------------------------------------------------------------------------------- 1 | 26 | 27 | 47 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: ci 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | branches: 9 | - main 10 | 11 | jobs: 12 | ci: 13 | runs-on: ${{ matrix.os }} 14 | 15 | strategy: 16 | matrix: 17 | os: [ubuntu-latest] 18 | 19 | steps: 20 | - name: Checkout 21 | uses: actions/checkout@v3 22 | 23 | - name: Install Node.js 24 | uses: actions/setup-node@v3 25 | with: 26 | node-version: 16 27 | 28 | - uses: pnpm/action-setup@v2 29 | name: Install pnpm 30 | id: pnpm-install 31 | with: 32 | version: 7 33 | run_install: false 34 | 35 | - name: Get pnpm store directory 36 | id: pnpm-cache 37 | shell: bash 38 | run: | 39 | echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT 40 | 41 | - uses: actions/cache@v3 42 | name: Setup pnpm cache 43 | with: 44 | path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} 45 | key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} 46 | restore-keys: | 47 | ${{ runner.os }}-pnpm-store- 48 | 49 | - name: Install dependencies 50 | run: pnpm install 51 | 52 | - name: Build project 👨🏻‍💻 53 | run: pnpm build 54 | 55 | - name: Run linter 👀 56 | run: pnpm lint 57 | -------------------------------------------------------------------------------- /components/about-us/achievementslogo.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | 15 | 67 | -------------------------------------------------------------------------------- /content/blog/csoc21-backend-week5.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: CSOC'21 Dev Backend Week 5 3 | date: 2020-07-14T11:51:59.091Z 4 | description: 'Now that you have completed the CSOC Backend Assignment, you built your own web app backed with Django/Express as the backend.' 5 | parentBlog: CSOC'21 Dev Backend 6 | author: COPS SDG 7 | featureImage: /blog/backend.webp 8 | --- 9 | 10 | # Week 5 11 | 12 | Now that you have completed the CSOC Backend Assignment, you built your own web app backed with Django/Express as the backend. Overnight your web app became a star success!! Congrats! They love it so much, that they want a mobile phone version! Time to create an Android Version! And an iOS version... 13 | 14 | And then you have to replicate 2 times the same backend code to Add, View, Remove, Update and Delete data, with different languages. 15 | 16 | That opens the door to many possible mistakes… And that is where rest APIs shines out..... 17 | 18 | Djnago Rest Framework (DRF) and Express enable you to host the same backend for web, mobile and desktop applications. 19 | 20 | Needless to say, we have so lovingly prepared an assignment for you that will make you "REST-less" (pun intended :)) 21 | 22 | You may choose to compete in any number of tracks. 23 | 24 | #### Topics for Week 5 25 | 26 | 1. [Django](/blog/csoc21-backend-week5-Django-REST-Framework) 27 | 2. [Express](/blog/csoc21-backend-week5-Express-REST-Framework) 28 | -------------------------------------------------------------------------------- /content/blog/csoc21-frontend.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: CSOC'21 Dev Frontend 3 | date: 2021-05-30T11:51:59.091Z 4 | description: "Welcome to CSoC'21 Frontend Development! Here's all the resources and tasks you need to know, complete, and focus on for every week." 5 | display: True 6 | author: COPS SDG 7 | featureImage: /blog/FRONTEND.webp 8 | --- 9 | 10 | Welcome to CSoC'21 Dev! Here's all the resources and tasks you need to know, complete, and focus on for every week. 11 | 12 | ### Heads up! 13 | 14 | All the great learning resources of COPS Dev group can also be found at [COPS Dev Resources](https://copsiitbhu.co.in/resources/dev/). For backend resources you should refer [CSoC'21 Dev Backend](csoc21-backend). 15 | 16 | The frontend track can be ideally completed in 3-4 weeks starting from the very basics of using Linux to becoming a frontend developer. Tasks are given that are to be completed by the end of each week that test and improve your practical skills on the technologies. You may choose to compete in any number of tracks. 17 | 18 | ### Weeks 19 | 20 | - [Week 0](/blog/csoc21-frontend-week0) 21 | - [Week 1](/blog/csoc21-frontend-week1) 22 | - [Week 2](/blog/csoc21-frontend-week2) 23 | - [Week 3](/blog/csoc21-frontend-week3) 24 | 25 | # Things to keep in mind 26 | 27 | ### No plagiarism 28 | 29 | Plagiarism in any of the tasks isn't allowed and can easily be caught. Learn from others' code but don't copy, otherwise, you're just giving yourself a handicap in learning. 30 | -------------------------------------------------------------------------------- /components/contact-us/map.vue: -------------------------------------------------------------------------------- 1 | 27 | 28 | 44 | -------------------------------------------------------------------------------- /components/LoadingSpinner.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 19 | 20 | 56 | -------------------------------------------------------------------------------- /content/blog/csoc21-backend.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: CSOC'21 Dev Backend 3 | date: 2021-06-22T11:51:59.091Z 4 | description: "Welcome to CSoC'21 Backend Development! Here's all the resources and tasks you need to know, complete, and focus on for every week." 5 | display: True 6 | author: COPS SDG 7 | featureImage: /blog/backend.webp 8 | --- 9 | 10 | Welcome to CSoC'21 Dev! Here's all the backend resources and tasks you need to know, complete, and focus on for every week. 11 | 12 | For frontend resources you should refer [CSoC'21 Dev Frontend](/blog/csoc21-frontend). 13 | 14 | # Heads up! 15 | 16 | All the great learning resources of COPS Dev group can also be found at [COPS Dev Resources](https://copsiitbhu.co.in/resources/dev/). 17 | 18 | The backend track can be completed in about 3-4 weeks, beginning with the fundamentals and progressing to becoming a backend developer. Each week, tasks are assigned that must be completed by the end of the week in order to test and improve your practical skills with the technologies. You can compete in as many tracks as you want. 19 | 20 | ### Weeks 21 | 22 | - [Week 4](/blog/csoc21-backend-week4) 23 | - [Week 5](/blog/csoc21-backend-week5) 24 | 25 | _Note: - Weeks 0-3 are covered in the frontend development track. For frontend resources you should refer [CSoC'21 Dev Frontend](/blog/csoc21-frontend)._ 26 | 27 | # Things to keep in mind 28 | 29 | ### No plagiarism 30 | 31 | Plagiarism in any of the tasks isn't allowed and can easily be caught. Learn from others' code but don't copy, otherwise, you're just giving yourself a handicap in learning. 32 | -------------------------------------------------------------------------------- /content/blog/csoc21-frontend-week0.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: CSOC'21 Dev Frontend Week 0 3 | date: 2021-05-30T11:51:59.091Z 4 | description: 'Consider this week as "revision of the fundamentals" since most have already cleared some or all of the topics of this week.' 5 | parentBlog: CSOC'21 Dev Frontend 6 | author: COPS SDG 7 | featureImage: /blog/FRONTEND.webp 8 | --- 9 | 10 | # Week 0 11 | 12 | Consider this week as "revision of the fundamentals" since most have already cleared some or all of the topics of this week. If you think you're weak in any of the topics below or haven't finished even one of the tasks listed, then make sure to finish them now. 13 | 14 | Throughout this course, we would require Linux to do assignments and resources will be posted for the same OS. It's expected that most have their Linux system ready due to COPS Linux Installation fest, but no worries! We're sharing all the required resources to get your system in shape for the following weeks and the basic shell commands you need to master. 15 | 16 | This week will be critical for the beginners to learn to work productively on their software projects and also to learn the art of asking questions the “hacker’s way”. 17 | 18 | We've also covered Git and [GitHub](https://github.com/) earlier, during the Dev-OSS workshops, so make sure to revise it well! 19 | 20 | There's a basic web dev project too to finish by the end of this week (June 6), so get your HTML tools back in shape! 21 | 22 | #### Topics for Week 0 23 | 24 | 1. [Git and GitHub](csoc21-frontend-week0-GitGitHub) 25 | 2. [Linux](csoc21-frontend-week0-Linux) 26 | 3. [Web Dev Basics](csoc21-frontend-week0-Web-Dev-Basics) 27 | -------------------------------------------------------------------------------- /components/cards/PostCard.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 64 | 65 | 71 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | ### Node template 3 | # Logs 4 | /logs 5 | *.log 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* 9 | 10 | # Runtime data 11 | pids 12 | *.pid 13 | *.seed 14 | *.pid.lock 15 | 16 | # Directory for instrumented libs generated by jscoverage/JSCover 17 | lib-cov 18 | 19 | # Coverage directory used by tools like istanbul 20 | coverage 21 | 22 | # nyc test coverage 23 | .nyc_output 24 | 25 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 26 | .grunt 27 | 28 | # Bower dependency directory (https://bower.io/) 29 | bower_components 30 | 31 | # node-waf configuration 32 | .lock-wscript 33 | 34 | # Compiled binary addons (https://nodejs.org/api/addons.html) 35 | build/Release 36 | 37 | # Dependency directories 38 | node_modules/ 39 | jspm_packages/ 40 | 41 | # TypeScript v1 declaration files 42 | typings/ 43 | 44 | # Optional npm cache directory 45 | .npm 46 | 47 | # Optional eslint cache 48 | .eslintcache 49 | 50 | # Optional REPL history 51 | .node_repl_history 52 | 53 | # Output of 'npm pack' 54 | *.tgz 55 | 56 | # Yarn Integrity file 57 | .yarn-integrity 58 | 59 | # dotenv environment variables file 60 | .env 61 | 62 | # parcel-bundler cache (https://parceljs.org/) 63 | .cache 64 | 65 | # next.js build output 66 | .next 67 | 68 | # nuxt.js build output 69 | .nuxt 70 | 71 | # Nuxt generate 72 | dist 73 | 74 | # vuepress build output 75 | .vuepress/dist 76 | 77 | # Serverless directories 78 | .serverless 79 | 80 | # IDE / Editor 81 | .idea 82 | 83 | # Service worker 84 | sw.* 85 | 86 | # macOS 87 | .DS_Store 88 | 89 | # Vim swap files 90 | *.swp 91 | 92 | # Pnpm-lock file 93 | pnpm-lock.yaml 94 | -------------------------------------------------------------------------------- /content/blog/express.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: ExpressJS 3 | date: 2021-06-22T11:51:59.091Z 4 | description: 'So After Frontend, we are left with Web Backend to gain a good command over web dev. That is why we bring you here, to Django!' 5 | author: COPS SDG 6 | featureImage: /blog/Nodejs.webp 7 | --- 8 | 9 | Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications. It is an open source framework developed and maintained by the Node.js foundation. 10 | 11 | ### Why Use Express 12 | 13 | - Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications. It is an open source framework developed and maintained by the Node.js foundation. 14 | - Without Express.js, you have to write your own code to build a routing component which is a time consuming and tedious task. Express.js offers simplicity, flexibility, efficiency, minimalism, and scalability to the programmers. It also has the advantage of powerful performance as it is a framework of Node.js. 15 | 16 | 17 | **Recommended Reading:** [Why Express](https://www.besanttechnologies.com/what-is-expressjs#:~:text=js.-,Express.,ExpressJS%2C%20AngularJS%2C%20and%20Node.&text=js.-,Express.,requests%2C%20error%20handling%2C%20etc.) 18 | 19 | ### Further Reading 20 | 21 | - [Basics of ExpressJS](/blog/csoc21-backend-week4-Express) 22 | - [Express REST Framework](/blog/csoc21-backend-week5-Express-REST-Framework) 23 | 24 | All the great learning resources of COPS Dev group can also be found at [COPS Dev Resources](https://copsiitbhu.co.in/resources/dev/). 25 | 26 | For backend resources you should refer [CSoC'21 Dev Backend](/blog/csoc21-backend). 27 | -------------------------------------------------------------------------------- /components/MainSection.vue: -------------------------------------------------------------------------------- 1 | 33 | 48 | 49 | 60 | -------------------------------------------------------------------------------- /components/about-us/youtube.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 29 | 30 | 53 | -------------------------------------------------------------------------------- /content/blog/django.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Django 3 | date: 2021-06-22T11:51:59.091Z 4 | description: 'So After Frontend, we are left with Web Backend to gain a good command over web dev. That is why we bring you here, to Django!' 5 | author: COPS SDG 6 | featureImage: /blog/django.webp 7 | --- 8 | 9 | Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of web development, so you can focus on writing your app without needing to reinvent the wheel. It’s free and open source. 10 | 11 | ### Why Use Django 12 | 13 | - Excellent documentation and high scalability. 14 | - Used by Top MNCs and Companies, such as Instagram, Disqus, Spotify, Youtube, Bitbucket, Dropbox, etc. and the list is never-ending. 15 | - Django is a rapid web development framework that can be used to develop fully fleshed web applications in a short period of time. 16 | - The last but not least reason to learn Django is Python, Python has a huge library and features such as Web Scrapping, Machine Learning, Image Processing, Scientific Computing, etc. One can integrate all this with web applications and do lots and lots of advanced stuff. 17 | 18 | 19 | **Recommended Reading:** [Why Django](https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django/Introduction) 20 | 21 | ### Further Reading 22 | 23 | - [Basics of Django](/blog/csoc21-backend-week4-Django) 24 | - [Django REST Framework](/blog/csoc21-backend-week5-Django-REST-Framework) 25 | 26 | All the great learning resources of COPS Dev group can also be found at [COPS Dev Resources](https://copsiitbhu.co.in/resources/dev/). 27 | 28 | For backend resources you should refer [CSoC'21 Dev Backend](/blog/csoc21-backend). 29 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "template", 3 | "version": "2.0.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "nuxt", 7 | "start": "nuxt start", 8 | "build": "nuxt generate -m", 9 | "lint": "eslint --ext .js,.vue,.ts --ignore-path .gitignore .", 10 | "format": "eslint --ext .js,.vue,.ts --ignore-path .gitignore . --fix", 11 | "postinstall": "is-ci || husky install" 12 | }, 13 | "dependencies": { 14 | "@nuxt/content": "^1.15.1", 15 | "@nuxt/image": "^0.7.1", 16 | "@nuxtjs/axios": "^5.13.6", 17 | "@nuxtjs/composition-api": "^0.29.3", 18 | "@nuxtjs/pwa": "^3.3.5", 19 | "@nuxtjs/robots": "^2.5.0", 20 | "@nuxtjs/sitemap": "^2.4.0", 21 | "core-js": "^3.23.4", 22 | "nuxt": "^2.15.8", 23 | "opti-image": "^0.10.0", 24 | "particles.js": "^2.0.0", 25 | "vue-lottie": "^0.2.1" 26 | }, 27 | "devDependencies": { 28 | "@iconify/json": "^2.1.76", 29 | "@nuxt/types": "^2.14.6", 30 | "@nuxt/typescript-build": "^2.0.3", 31 | "@nuxtjs/eslint-config-typescript": "^6.0.1", 32 | "@nuxtjs/eslint-module": "^3.0.2", 33 | "@vue/runtime-dom": "^3.2.37", 34 | "eslint": "^7.10.0", 35 | "eslint-config-prettier": "^8.4.0", 36 | "eslint-plugin-nuxt": "^2.0.0", 37 | "eslint-plugin-prettier": "^4.0.0", 38 | "eslint-plugin-vue": "^7.20.0", 39 | "eslint-plugin-vuejs-accessibility": "^0.7.1", 40 | "husky": "^7.0.4", 41 | "is-ci": "^3.0.1", 42 | "nuxt-gsap-module": "^1.7.1", 43 | "nuxt-purge-icons-module": "^0.7.0", 44 | "nuxt-windicss": "^2.4.3", 45 | "prettier": "^2.1.2", 46 | "sass": "1.53.0", 47 | "sass-loader": "^10.1.1", 48 | "unplugin-icons": "^0.14.7" 49 | }, 50 | "engines": { 51 | "node": ">=14", 52 | "pnpm": ">=3" 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /content/blog/flutter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Flutter 3 | date: 2021-06-07T11:51:59.091Z 4 | description: 'Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.' 5 | author: COPS SDG 6 | featureImage: /blog/Flutter.webp 7 | --- 8 | 9 | Flutter is an open source framework to create high quality, high performance mobile applications across mobile operating systems - Android and iOS. It provides a simple, powerful, efficient and easy to understand SDK to write mobile application in Google’s own language, Dart. 10 | 11 | ### Why Flutter? 12 | 13 | Flutter clearly stands out as a popular cross-platform application development framework by many mobile app development service providers. Here we list some key points to enable designers and developers to see the advantages of Flutter. 14 | - Open Source 15 | - Single Codebase 16 | - Dart As Programming Language 17 | - Hot Reload and Development 18 | - Native App Like Performance 19 | - Tech Community 20 | - Use of Custom Widgets 21 | - Attracts More Investors 22 | - Create Apps for Mobile, Desktop, and Web 23 | - Requires Less Testing 24 | 25 | Flutter provides the advantage of native applications providing performance, greater control over the hardware as well as ease of use for developers. 26 | 27 | ### Further Reading 28 | 29 | - [Basics of Flutter](/blog/csoc21-frontend-week1-Flutter) 30 | - [Flutter & Data Storage](/blog/csoc21-frontend-week2-Flutter) 31 | - [Flutter (Network Calls)](/blog/csoc21-frontend-week3-Flutter) 32 | 33 | All the great learning resources of COPS Dev group can also be found at [COPS Dev Resources](https://copsiitbhu.co.in/resources/dev/). 34 | 35 | For frontend resources you should refer [CSoC'21 Dev Frontend](/blog/csoc21-frontend). 36 | -------------------------------------------------------------------------------- /content/blog/native-android.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Native Android 3 | date: 2021-06-07T11:51:59.091Z 4 | description: 'The aptest definition for android is - "Android is a mobile operating system based on a modified version of the Linux kernel and other open-source software, designed primarily for touchscreen mobile devices such as smartphones and tablets."' 5 | author: COPS SDG 6 | featureImage: /blog/android.webp 7 | --- 8 | 9 | The aptest definition for android is - "Android is a mobile operating system based on a modified version of the Linux kernel and other open-source software, designed primarily for touchscreen mobile devices such as smartphones and tablets." 10 | 11 | Evident enough that the software engineering field for developing such apps is known as Android App Development. 12 | 13 | ### Why Learn Android Development 14 | 15 | Android Development is low cost and provides high ROI. Since Android has a huge number of clients from increasingly diverse backgrounds, applications are less expensive. Most of the applications are free to download and are also easily available on the play store in comparison to another operating system. 16 | 17 | **Recommended Reading:** [Why Learn Android Development](https://www.geeksforgeeks.org/why-should-you-learn-android-app-development/) 18 | 19 | ### Further Reading 20 | 21 | - [Basics of Android Development](/blog/csoc21-frontend-week1-Native-Android) 22 | - [Android Development & Storage](/blog/csoc21-frontend-week2-Native-Android) 23 | - [Android Development (Network Calls)](/blog/csoc21-frontend-week3-Native-Android) 24 | 25 | All the great learning resources of COPS Dev group can also be found at [COPS Dev Resources](https://copsiitbhu.co.in/resources/dev/). 26 | 27 | For frontend resources you should refer [CSoC'21 Dev Frontend](/blog/csoc21-frontend). 28 | -------------------------------------------------------------------------------- /components/Footer.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 49 | -------------------------------------------------------------------------------- /assets/variables.scss: -------------------------------------------------------------------------------- 1 | // Ref: https://github.com/nuxt-community/vuetify-module#customvariables 2 | // 3 | // The variables you want to modify 4 | // $font-size-root: 20px0; 5 | :root{ 6 | --project-card-glow-primary:#89ff00; 7 | --project-card-glow-secondary:#00bcd4; 8 | --project-card-content:#0946ca; 9 | --project-card-background:#060c21; 10 | --contact-link-bg-primary:rgba(255, 255, 255, 0.911); 11 | --contact-link-bg-secondary:rgba(255, 255, 255, 0.911); 12 | --contact-link-shadow-primary:rgba(116, 227, 235, 0.959); 13 | --navbar-color:#56eefd; 14 | --navbar-bg:#111; 15 | --sdgcard-bg:#06508b; 16 | } 17 | @layer base { 18 | @font-face { 19 | font-family: 'Jura'; 20 | src: local('Jura'), local('Jura-VariableFont'), url('~/assets/Jura-VariableFont_wght.ttf') format('truetype'); 21 | font-weight: 400; 22 | font-style: normal; 23 | font-display: optional; 24 | } 25 | 26 | @font-face { 27 | font-family: 'Nunito'; 28 | src: local('Nunito'), local('Nunito-VariableFont'), url('~/assets/Nunito-VariableFont_wght.ttf') format('truetype'); 29 | font-weight: 400; 30 | font-style: normal; 31 | font-display: optional; 32 | } 33 | 34 | @font-face { 35 | font-family: 'Libre Baskerville'; 36 | src: local('Libre Baskerville'), local('LibreBaskerville-Regular'), url('~/assets/LibreBaskerville-Regular.ttf') format('truetype'); 37 | font-weight: 400; 38 | font-style: normal; 39 | font-display: optional; 40 | } 41 | } 42 | 43 | * { 44 | margin: 0; 45 | padding: 0; 46 | box-sizing: border-box; 47 | margin-block: 0; 48 | margin-inline: 0; 49 | } 50 | 51 | body { 52 | background-color: #111; 53 | scroll-behavior: smooth; 54 | font-family: 'Nunito', sans-serif; 55 | overflow-x: hidden; 56 | } 57 | 58 | h1, h2, h3 { 59 | font-family: 'Jura', 'sans-serif'; 60 | } 61 | -------------------------------------------------------------------------------- /components/contact-us/discord/online.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /content/blog/web-development-basics.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Web Development Basics 3 | date: 2021-05-30T11:51:59.091Z 4 | description: 'Web development refers to the building, creating, and maintaining of websites.' 5 | author: COPS SDG 6 | featureImage: /blog/web dev basic.webp 7 | --- 8 | 9 | Alright! Let's get to Web Development! Web Development includes aspects such as web design, web publishing, web programming, and database management. It is the creation of an application that works over the internet i.e. websites. 10 | HTML, CSS, JavaScript are the fundamentals of web development, so it is important that you get comfortable with them before moving on to some really cool stuff for the next weeks! 11 | 12 | ### Why learn Web Development? 13 | 14 | In today's day and age, we visit websites and web applications on a daily basis. From searching on web to shopping, everything is a website. Moreover, you are reading this blog too on a website. Websites have become an important part of the IT industry. Almost every organisation relies on a personalised space on the web to build an audience. 15 | 16 | Web development gives you the opportunity and the creative freedom to express yourself on the world wide web. If you have an idea or a skill, then web development gives you a chance to display and exhibit your thoughts and plans to the entire globe. Web development is a creative, fun and intellectual experience. 17 | 18 | ### Further Reading 19 | 20 | - [Basics Of Web Development](/blog/csoc21-frontend-week1-Flutter) 21 | - [Diving Deeper into Web Development](/blog/csoc21-frontend-week2-Flutter) 22 | - [Creating Web Apps - APIs](/blog/csoc21-frontend-week3-Flutter) 23 | 24 | All the great learning resources of COPS Dev group can also be found at [COPS Dev Resources](https://copsiitbhu.co.in/resources/dev/). 25 | 26 | For frontend resources you should refer [CSoC'21 Dev Frontend](/blog/csoc21-frontend). 27 | -------------------------------------------------------------------------------- /content/blog/csoc21-frontend-week0-Web-Dev-Basics.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Basics Of Web Development 3 | date: 2021-05-30T11:51:59.091Z 4 | description: 'In this task you have to create a static portfolio page, using basic web development tools(HTML, CSS & Javascript).' 5 | parentBlog: Web Development Basics 6 | author: COPS SDG 7 | featureImage: /blog/web dev basic.webp 8 | --- 9 | 10 | # Web Dev Basics 11 | 12 | Due Date: June 6, 2021 13 | type: bonus task 14 | 15 | In this task you have to create a static portfolio page, using basic web development tools(HTML, CSS & Javascript). 16 | 17 | ## Resources 18 | 19 | - HTML 20 | 21 | [HTML Reference](https://htmlreference.io/) 22 | 23 | - CSS 24 | 25 | [CSS-Tricks](https://css-tricks.com/) 26 | 27 | [CSS Reference](https://cssreference.io/) 28 | 29 | - JavaScript 30 | 31 | [JavaScript Reference](https://www.w3schools.com/jsref/jsref_reference.asp) 32 | 33 | ### To practice using with HTML page, read DOM manipulation 34 | 35 | [The Basics of DOM Manipulation in Vanilla JavaScript (No jQuery) - SitePoint](https://www.sitepoint.com/dom-manipulation-vanilla-javascript-no-jquery/) 36 | 37 | ## Bonus Task 38 | 39 | In this task you have to create a static portfolio page, using basic web development tools(HTML, CSS & Javascript). Points for this task will depend on the UI and responsiveness of the page you create. For creating a decent-looking design, you can use frontend libraries like bootstrap. 40 | 41 | **Submission guidelines for this task:** 42 | 43 | - Create the project in your computer, and after completion push it to one of your Github repo. 44 | - You should deploy your project using hosting services like [Github Pages](https://guides.github.com/features/pages/). 45 | - You can then submit the deployed project URL, along with other details in the Google form linked below. 46 | 47 | [CSOC - Week 0 Bonus Challenge](https://docs.google.com/forms/d/e/1FAIpQLSf0dDl6BZGTkUIHkiSjcv8frvMBZzhuJNV1VsDz57g43juINA/viewform) 48 | -------------------------------------------------------------------------------- /components/contact-us/social.vue: -------------------------------------------------------------------------------- 1 | 43 | 44 | 56 | 57 | 75 | -------------------------------------------------------------------------------- /pages/contact/index.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | 58 | 59 | 75 | -------------------------------------------------------------------------------- /pages/blog/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 74 | 75 | 80 | -------------------------------------------------------------------------------- /static/shapes/waves.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Contributing Guidelines 2 | 3 | So you have made up your mind to contribute to this project? Here's everything you'll need to make your first contribution. 4 | 5 | ### What can I help with? 6 | 7 | We welcome contributions of all sorts. Even the most minor changes are warmly welcomed. You may choose to work on an existing issue or propose your own. 8 | 9 | Some examples of contributions are: 10 | 11 | 1. Documentation: From spelling corrections to documenting any necessary information, everything comes under this section. 12 | 13 | 2. Bugs: Any bug fixes are counted in this section. If you come across a new bug, feel free to create a new issue mentioning the problem. 14 | 15 | 3. Feature Requests: If you would like to see some new features around the website, you can always create a new issue mentioning the requested feature. 16 | 17 | **Important:** Every PR must correspond to an issue. If there isn't an issue related to the PR, open a new issue on the [Issues page](https://github.com/COPS-IITBHU/sdg-site/issues). 18 | 19 | ### Grabbing an issue 20 | 21 | To work on an existing issue, comment on it and say you're working on that issue. Any maintainer will assign you to the issue. This is to avoid conflicts with others also working on the issue. 22 | 23 | You can always seek help and are recommended to discuss the course of action and design decisions to tackle the issue on the [Issues page](https://github.com/COPS-IITBHU/sdg-site/issues) before making the Pull Request. 24 | 25 | ### How to Contribute? 26 | 27 | 1. Fork this repository and set up the development environment as mentioned [here](README.md). 28 | 29 | 2. Check out to a new branch for the patch. 30 | 31 | ```bash 32 | git checkout -b 33 | ``` 34 | 35 | 3. Write your code. 36 | 37 | 38 | 39 | 4. Before committing changes, you should verify if the issue is fixed 40 | 41 | 5. Commit your changes. Try to follow the [best practices][best_practices] while committing changes. 42 | 43 | ```bash 44 | git commit -s 45 | # Then write the commit message and save changes 46 | ``` 47 | 48 | 6. Push the changes to your fork. 49 | 50 | ```bash 51 | git push -u origin 52 | ``` 53 | 54 | 7. Create a pull request. Be sure to read and follow our pull request guidelines! 55 | 56 | 8. Wait for code review and address any issues raised. 57 | 58 | 9. Voila! You made a contribution. Keep it up. 59 | 60 | ### Keeping your fork up-to-date 61 | 62 | 1. Add this repository as an upstream. 63 | 64 | ```bash 65 | git remote add upstream 66 | ``` 67 | 68 | 2. Pull the latest changes from the main branch. 69 | 70 | ```bash 71 | git pull upstream main 72 | ``` 73 | 74 | [best_practices]: https://gist.github.com/robertpainsi/b632364184e70900af4ab688decf6f53 75 | -------------------------------------------------------------------------------- /components/about-us/aboutuslogo.vue: -------------------------------------------------------------------------------- 1 | 36 | 37 | 106 | -------------------------------------------------------------------------------- /content/index/projectData.yml: -------------------------------------------------------------------------------- 1 | --- 2 | projects: 3 | - name: COPS Website 4 | gh_user: COPS-IITBHU 5 | repo: cops-website 6 | url: https://www.copsiitbhu.co.in/ 7 | img: cops-website.webp 8 | desc: Official website of Club of Programmers, IIT (BHU) Varanasi. 9 | tech: 10 | - Ruby 11 | - SCSS 12 | - Bootstrap 13 | 14 | - name: Internship Portal 15 | i18n: google 16 | url: https://iit-intern-portal.herokuapp.com/ 17 | img: tpcportal.webp 18 | desc: Intern Portal is a django-web application that helps the students of IIT BHU to land an internship in upcoming startups. 19 | tech: 20 | - JQuery 21 | - Gunicorn 22 | - Heroku 23 | 24 | - name: Lite hai 25 | i18n: google 26 | gh_user: IIT-BHU-InstiApp 27 | repo: IIT-BHU-app 28 | url: https://play.google.com/store/apps/details?id=com.iitbhu.litehai 29 | img: litehai.webp 30 | desc: Lite Hai! is a mobile app that acts as a comprehensive guide to all the Gymkhana happenings at IIT BHU! Whether you're worried about any workshop, fest or club. Fear not - 'Lite Hai' is here to make it lite again! 31 | tech: 32 | - Flutter 33 | - Django 34 | - Firebase 35 | 36 | - name: Hackalog 37 | i18n: google 38 | gh_user: COPS-IITBHU 39 | repo: hackalog-frontend 40 | url: https://hackalog.copsiitbhu.co.in/ 41 | img: hackalog.webp 42 | desc: The home for hackathons organised under COPS IIT(BHU). 43 | tech: 44 | - React 45 | - Django 46 | 47 | - name: Telegram Bot 48 | i18n: ... 49 | url: https://github.com/COPS-IITBHU/telegram-bots 50 | img: telegrambot.webp 51 | desc: The telegram bots developed and used by the COPS SDG Group. 52 | tech: 53 | - Typescript 54 | - Vercel 55 | 56 | - name: IIT BHU Study Portal 57 | i18n: cpython 58 | url: https://play.google.com/store/apps/details?id=com.shoom.iitbhuapp 59 | img: studyportal.webp 60 | desc: IIT BHU Study Portal aims to act as knowledge hub of IIT BHU, where anyone can share files, study materials, question papers and many more. 61 | tech: 62 | - Flutter 63 | - Django 64 | - Firebase 65 | 66 | - name: Previewer 67 | i18n: cpython 68 | repo: Previewer 69 | url: https://github.com/COPS-IITBHU/Previewer/releases/tag/v1.0.0 70 | img: previewer.webp 71 | desc: Android SDK/Library for generating a preview for PDF/MP4 files present locally in the device or from YouTube URLs. 72 | tech: 73 | - Kotlin 74 | - Android 75 | 76 | - name: Discord Bot 77 | i18n: cpython 78 | repo: discord-bot 79 | url: https://github.com/COPS-IITBHU/discord-bot 80 | img: discordbot.webp 81 | desc: A Discord Bot built upon slash commands provided by Discord Beta. It works on the principle of webhooks by awaiting commands and can be deployed on serverless architecture like Vercel. 82 | tech: 83 | - Javascript 84 | - Typescript -------------------------------------------------------------------------------- /components/cards/GenericCard.vue: -------------------------------------------------------------------------------- 1 | 40 | 72 | 117 | -------------------------------------------------------------------------------- /components/SiteHero.vue: -------------------------------------------------------------------------------- 1 | 19 | 35 | 36 | 132 | -------------------------------------------------------------------------------- /pages/blog/_singlePost.vue: -------------------------------------------------------------------------------- 1 | 30 | 63 | 119 | -------------------------------------------------------------------------------- /components/about-us/carousel/controls.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | 58 | 59 | 170 | -------------------------------------------------------------------------------- /content/alums/alums.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "Shivansh Saini", 4 | "designation": "DevOps Engineer", 5 | "company": "CoinDCX", 6 | "link": "https://www.linkedin.com/in/shivanshs9/", 7 | "github": "https://github.com/shivanshs9" 8 | }, 9 | { 10 | "name": "Akshay Sharma", 11 | "designation": "MS", 12 | "company": "Columbia University", 13 | "link": "https://www.linkedin.com/in/akshay326/", 14 | "github": "https://github.com/akshay326" 15 | }, 16 | { 17 | "name": "Jogendra Kumar", 18 | "designation": "iOS/Backend Engineer", 19 | "company": "Fynch Smart Mobility", 20 | "link": "https://www.linkedin.com/in/jogendrasingh24/", 21 | "github": "https://github.com/jogendra" 22 | }, 23 | { 24 | "name": "Yash Jipkate", 25 | "designation": "Technologist", 26 | "company": "LG Ads", 27 | "github": "https://github.com/YashJipkate", 28 | "link": "https://www.linkedin.com/in/yashjipkate/" 29 | }, 30 | { 31 | "name": "Vaibhav Dixit", 32 | "company": "Julia Computing", 33 | "designation": "Software Engineer", 34 | "github": "https://github.com/Vaibhavdixit02", 35 | "link": "https://www.linkedin.com/in/vaibhav-dixit-0a9739156/" 36 | }, 37 | { 38 | "name": "Harsh Rangwani", 39 | "company": "IISc", 40 | "designation": "Ph.D. Student", 41 | "github": "https://github.com/rangwani-harsh", 42 | "link": "https://www.linkedin.com/in/harsh-rangwani/" 43 | }, 44 | { 45 | "name": "Abhinav Singh", 46 | "company": "Harness", 47 | "designation": "Senior Software Engineer", 48 | "github": "https://github.com/abhinavcode", 49 | "link": "https://www.linkedin.com/in/abhinavsingh996/" 50 | }, 51 | { 52 | "name": "Amritansh Singhal", 53 | "company": "Cohesity", 54 | "designation": "Research Engineer", 55 | "github": "https://github.com/Eerie16", 56 | "link": "https://www.linkedin.com/in/amritansh-singhal-f138/" 57 | }, 58 | { 59 | "name": "Dipesh Kumar", 60 | "company": "Microsoft", 61 | "designation": "Software Engineer", 62 | "github": "https://github.com/pegasus-lynx", 63 | "link": "https://www.linkedin.com/in/dipeshkr/" 64 | }, 65 | { 66 | "name": "Tawrun Vankineeni", 67 | "company": "Cisco", 68 | "designation": "Software Engineer", 69 | "github": "https://github.com/VANKINEENITAWRUN", 70 | "link": "https://www.linkedin.com/in/vankineenitawrun/" 71 | }, 72 | { 73 | "name": "Nishant Mittal", 74 | "company": "Google", 75 | "designation": "Software Engineer", 76 | "github": "https://github.com/nishantwrp", 77 | "link": "https://www.linkedin.com/in/nishantwrp/", 78 | "year": 2018 79 | }, 80 | { 81 | "name": "Ashish Kumar", 82 | "company": "Nutanix", 83 | "designation": "MTX", 84 | "github": "https://github.com/krashish8", 85 | "link": "https://www.linkedin.com/in/ashishkr23438/", 86 | "year": 2018 87 | }, 88 | { 89 | "name": "Jogi Miglani", 90 | "company": "Microsoft", 91 | "designation": "Software Engineer", 92 | "github": "https://github.com/jmig5776", 93 | "link": "https://www.linkedin.com/in/jogi-miglani-131727161/", 94 | "year": 2017 95 | }, 96 | { 97 | "name": "Nishant Kumar", 98 | "company": "Mastercard AI Garage", 99 | "designation": "Data Scientist", 100 | "github": "https://github.com/nishantkr18", 101 | "link": "https://www.linkedin.com/in/nishantkr18/", 102 | "year": 2018 103 | }, 104 | { 105 | "name": "Ronit Raj", 106 | "company": "Google, Dublin", 107 | "designation": "Software Engineer", 108 | "github": "https://github.com/arron-tij", 109 | "link": "https://www.linkedin.com/in/raj-ronit/", 110 | "year": 2018 111 | }, 112 | { 113 | "name": "Himanshu Balasamanta", 114 | "company": "Microsoft", 115 | "designation": "Software Engineer", 116 | "github": "https://github.com/Himanshu-Balasamanta", 117 | "link": "https://www.linkedin.com/in/himanshu-balasamanta/", 118 | "year": 2018 119 | } 120 | ] 121 | -------------------------------------------------------------------------------- /components/Home/Hero.vue: -------------------------------------------------------------------------------- 1 | 36 | 37 | 84 | 85 | 94 | -------------------------------------------------------------------------------- /components/Home/projectCard.vue: -------------------------------------------------------------------------------- 1 | 79 | 80 | 98 | 99 | 157 | -------------------------------------------------------------------------------- /content/blog/csoc21-frontend-week3-Native-Android.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Android (Network Calls) 3 | date: 2020-06-22T11:51:59.091Z 4 | description: 'What happens when you log out of your Social Media account from one device and open it again on a different device? You see that all your chat messages, profile picture, groups etc. are preserved. It feels like you never changed your device at all. But how did this happen?' 5 | parentBlog: Native Android 6 | author: COPS SDG 7 | featureImage: /blog/android.webp 8 | --- 9 | 10 | # Android (Network Calls) 11 | 12 | # Introduction 13 | 14 | What happens when you log out of your Social Media account from one device and open it again on a different device? You see that all your chat messages, profile picture, groups etc. are preserved. It feels like you never changed your device at all. But how did this happen? 15 | 16 | This can be made possible if we have a system that can store our app-data online and whenever required, this data can be provided to the client apps. For doing so our apps should be able to send and receive data to and from the Internet, and hence we need to learn about making network calls and online data storage. 17 | 18 | # How to make Network Calls 19 | 20 | Note that we are going to use the Backend API made by COPS to enable storing and retrieving data from an online database. 21 | 22 | ### Setup your Project 23 | 24 | You will be interacting with a Rest API to authenticate your user and also store his/her data online. Now if you need to do any of this you will have to import some library that can help you with making network requests. Hence we prefer you to use Retrofit as it is one of the popular Android Networking Library. 25 | 26 | - What is Rest API 27 | 28 | This is something which you should try to learn about your self but here is a video to help you understand it 29 | 30 | [What is REST API? | Web Service](https://www.youtube.com/watch?v=) 31 |
32 | 33 |
34 | 35 | - How to use Retrofit (Important) 36 | 37 | This networking library will help you to write code for retrieving/storing data from an API. You will have to create models on how to use parse a network response into a structure. This video series will help you guide on how to use Retrofit 38 | 39 | [Retrofit Tutorial for Beginners - Android Programming](https://www.youtube.com/playlist?list=PLrnPJCHvNZuCbuD3xpfKzQWOj3AXybSaM) 40 | 41 | # Assignment 42 | 43 | In the previous week, you guys got to learn about how to store data locally on your Android Device. This week tasks will be an extension of the previous TODO List App. 44 | 45 | ## T**ODO Maker 2.0** 46 | 47 | Enable your previously made (or you can start from scratch) TODO maker App to store and retrieve data to/from Todo-API. This means you will have the ability to have the same data on different devices on which your app is installed. Note that for different users of your App a different TODO data collection will be formed. This means that you will have a separate TODO list for individual Users and if that user opens the app on any other device then the data shown to them must be theirs only. 48 | 49 | ### Rest API 50 | 51 | The Rest API for your tasks will be → [https://todo-app-csoc.herokuapp.com/](https://todo-app-csoc.herokuapp.com/) 52 | 53 | It will have some specific endpoints which are going to be used for authentication, creating data, deleting data, etc. You can see more details about them here ([https://github.com/COPS-IITBHU/csoc-2021-task-2-web#end-points](https://github.com/COPS-IITBHU/csoc-2021-task-2-web#end-points)) 54 | 55 | # **Submission** 56 | 57 | This Blog is a part of [CSoC'21 Dev Frontend](/blog/csoc21-frontend). 58 | 59 | Remember, deadline for this task is **July 02nd, 2021 23:59.** 60 | 61 | Submission has to be done by sharing your github repo link and the .apk file of your android app 62 | 63 | ### **Gunderlines :** 64 | 65 | - Clone CSOC-task3-2021 on your machine. 66 | - Make a folder of your name within the Android folder and add the .apk file of your app. 67 | - Finally push your Pull request . 68 | -------------------------------------------------------------------------------- /components/sdgCard.vue: -------------------------------------------------------------------------------- 1 | 51 | 91 | 92 | 154 | -------------------------------------------------------------------------------- /content/blog/csoc21-frontend-week0-GitGitHub.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Git And GitHub 3 | date: 2021-05-30T11:51:59.091Z 4 | description: 'Git is a prevalent version control system (VCS) used in Open Source Development. It is a crucial skill to learn while developing in a team.' 5 | author: COPS SDG 6 | featureImage: /blog/git-github.webp 7 | --- 8 | 9 | # Git and GitHub 10 | 11 | # Introduction 12 | 13 | Git is a prevalent version control system (VCS) used in Open Source Development. It is a crucial skill to learn while developing in a team. 14 | 15 | GitHub is a web-based service for version control using Git. It is a social networking site for developers, where you can look at other people's code, identify issues and even propose changes. 16 | 17 | [Git and GitHub in a NutShell.](https://codeburst.io/git-and-github-in-a-nutshell-b0a3cc06458f) 18 | 19 | # Installation 20 | 21 | [Git - Installing Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) 22 | 23 | # Resources 24 | 25 |
26 | 27 |
28 | 29 | - Git Branching Tutorial 30 | 31 |
32 | 33 |
34 | 35 | - GitHub Learning Guide 36 | 37 | [Set up Git](https://docs.github.com/en/github/getting-started-with-github/quickstart/set-up-git) 38 | 39 | - GitIgnore Explanation 40 | 41 | [.gitignore file - ignoring files in Git | Atlassian Git Tutorial](https://www.atlassian.com/git/tutorials/saving-changes/gitignore) 42 | 43 | - GitHub Best Practices 44 | 45 | Here are some Github best practices you should keep in mind when working on live project: 46 | 47 | [Top GitHub best practices for developers](https://www.datree.io/resources/github-best-practices) 48 | 49 | - Git Cheatsheet 50 | 51 | [joshnh/Git-Commands](https://github.com/joshnh/Git-Commands/blob/master/README.md) 52 | 53 | ## Using GUI for Version Control 54 | 55 | Usually, when programmers use Git for version control of their code, they use the command-line user interface, i.e., a terminal interface from a UNIX/Linux OS. However, several tools enable Git easily for novices using a Graphical User Interface (GUI), enabling a point-and-click interface. Two great tools for GUIs are GitHub Desktop and Git extension in Visual Studio Code. 56 | 57 | [Version Control in Visual Studio Code](https://code.visualstudio.com/docs/editor/versioncontrol) 58 | 59 | [Working with GitHub in Visual Studio Code](https://code.visualstudio.com/docs/editor/github) 60 | 61 |
62 | 63 |
64 | 65 | [GitHub Desktop](https://desktop.github.com/) 66 | 67 | # Practice and Tasks 68 | 69 | Now that you are comfortable with the version control systems, we want you to try out some challenges to check you're on the right track. 70 | 71 | This Blog is a part of [CSoC'21 Dev Frontend](/blog/csoc21-frontend). 72 | 73 | Remember, deadline for both the tasks is **June 6th, 2021 23:59.** 74 | 75 | ## First Challenge 76 | 77 | In this challenge, you need to fork the following project into your GitHub account, clone it to your system, create your new branch, make necessary changes to include your name card. After editing, commit your changes and push them to origin after pulling any possible changes made. Open a pull request when all looks good for review. 78 | 79 | Fork from and Open your pull requests here for the first challenge 80 | 81 | [COPS-IITBHU/csoc-2021-namecards](https://github.com/COPS-IITBHU/csoc-2021-namecards) 82 | 83 | ## Second Challenge 84 | 85 | In this challenge, you need to implement any one algorithm on your own from the given list of algorithms. Different algorithms carry different points, and your net points accumulated will be calculated. 86 | 87 | As done in the first challenge, you'll fork the repository and submit pull requests from your newly created branch for this challenge here. 88 | 89 | [COPS-IITBHU/csoc-2021-algorithms](https://github.com/COPS-IITBHU/csoc-2021-algorithms) 90 | -------------------------------------------------------------------------------- /content/blog/csoc21-frontend-week2-Flutter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Flutter & Data Storage 3 | date: 2021-06-15T11:51:59.091Z 4 | description: 'You must have encountered keywords like async, await and Future till now. These are very important blocks that one should comprehend.' 5 | parentBlog: Flutter 6 | author: COPS SDG 7 | featureImage: /blog/Flutter.webp 8 | --- 9 | 10 | # Flutter 11 | 12 | # Asynchronous code in Dart & Flutter 13 | 14 | You must have encountered keywords like async, await and Future till now. These are very important blocks that one should comprehend. 15 | 16 | Get this concept with this video created by Google developers themselves 17 | 18 |
19 | 20 |
21 | 22 | # Storing data locally 23 | 24 | ## Persisting Key-Value based data using SharedPreferences 25 | 26 | There are a lot of options for storing data locally. The most basic one is using the [shared_preferences](https://pub.dev/packages/shared_preferences) plugin. 27 | 28 | Here is a video explaining the [shared_preferences](https://pub.dev/packages/shared_preferences) plugin 29 | 30 |
31 | 32 |
33 | 34 | or you can read this tutorial 35 | 36 | [Store key-value data on disk](https://flutter.dev/docs/cookbook/persistence/key-value) 37 | 38 | Although key-value storage is easy and convenient to use, it has limitations: 39 | 40 | - Only primitive types can be used: int, double, bool, string, and stringList. 41 | - It’s not designed to store a lot of data. 42 | 43 | sqflite plugin overcomes these limitations. 44 | 45 | ## Persist and Query data locally on the device with SQLite. 46 | 47 | ### What is SQLite? 48 | 49 | Before moving any forward, you must know what exactly is SQLite. The following tutorial gives you a brief overview of the same. 50 | 51 | [What is SQLite? Top SQLite Features You Should Know](https://www.sqlitetutorial.net/what-is-sqlite/) 52 | 53 | ### Creating a local SQLite database using [sqflite](https://pub.dev/packages/sqflite) package Flutter 54 | 55 | Here comes the Flutter part. 56 | 57 | There are a bunch of packages available to store data locally on the device, but the one recommended by Flutter is the "sqflite" package which is an SQLite plugin for Flutter. 58 | 59 | Here is a short video by Flutter team explaining the sqflite package 60 | 61 |
62 | 63 |
64 | 65 | Now, let's read and learn about the sqflite plugin! 66 | 67 | [Persist data with SQLite](https://flutter.dev/docs/cookbook/persistence/sqlite) 68 | 69 | or if you are more of a video person 70 | 71 |
72 | 73 |
74 | 75 | ## The sqflite Alternative 76 | 77 | sqflite is all you need for storing structured data locally therefore, explore this section only when you are done with sqflite. 78 | 79 | ### Hive 80 | 81 | Hive is a key-value (NoSQL) based database that is much faster than sqflite. 82 | 83 | [Hive Docs](https://docs.hivedb.dev) 84 | 85 | A beginners tutorial to Hive 86 | 87 |
88 | 89 |
90 | 91 | # Challenge and Submission 92 | 93 | This Blog is a part of [CSoC'21 Dev Frontend](/blog/csoc21-frontend). 94 | 95 | Remember, deadline for this task is **June 21st, 2021 23:59.** 96 | 97 | So much for learning, here is your next Assignment 98 | 99 | [COPS-IITBHU/csoc-2021-task-2](https://github.com/COPS-IITBHU/csoc-2021-task-2) 100 | 101 | All the details of the task are provided in the README.md file. 102 | 103 | Just like last task you have to create your own repo and then make a PR in above repo to add your entry into `[Flutter.md](http://flutter.md)` with **apk link and repo link only** 104 | -------------------------------------------------------------------------------- /content/blog/csoc21-backend-week4-Django.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Basics of Django 3 | date: 2021-06-22T11:51:59.091Z 4 | description: 'So After Frontend, we are left with Web Backend to gain a good command over web dev. That is why we bring you here, to Django!' 5 | parentBlog: Django 6 | author: COPS SDG 7 | featureImage: /blog/django.webp 8 | --- 9 | 10 | # Django 11 | 12 | # Introduction 13 | 14 | Django is a Loosely Coupled Framework, that uses MVC (Model-View-Controller) core architecture. What is MVC, well that's not important for now. 15 | 16 | Here is a brief intro to why we use Django: 17 | 18 | [Why We Use Django Framework & What Is Django Best Used For](https://djangostars.com/blog/why-we-use-django-framework/) 19 | 20 | Check out the official site: 21 | 22 | [Django](https://www.djangoproject.com/) 23 | 24 | Django likes to call itself _"The Web Framework for Perfectionists with Deadlines"_. Hopefully you'll be able to validate the authenticity of their claim by the end of next week! 😉 25 | 26 | ### Why was Django made? 27 | 28 | The backend developers needed a common interface to be able to work with seemingly different data sources and database software. 29 | 30 | The design teams needed to manage the user experience with the tools they already had (HTML, CSS, JavaScript etc.) 31 | 32 | The hard-core coders needed a framework that allowed them to rapidly deploy changes within the system that kept everyone happy. 33 | 34 | ### Features 35 | 36 | Django has 37 | 38 | - Simple syntax 39 | - Its own web server to test locally 40 | - MVC (Model-View-Controller) core architecture 41 | - Django comes with all the essentials needed for solving common cases 42 | - HTTP libraries; 43 | - Middleware support 44 | - Great community support 45 | - Lots of libraries available to extend the functionality 46 | 47 | ### Principles 48 | 49 | [Design philosophies | Django documentation | Django](https://docs.djangoproject.com/en/3.0/misc/design-philosophies/#don-t-repeat-yourself-dry) 50 | 51 | Most important principles to remember: 52 | 53 | 1. **DRY** aka **Don't Repeat Yourself** 54 | 2. Loose Coupling 55 | 3. Explicit is better than implicit 56 | 4. **EAFP** aka **Easier to Ask Forgiveness than Permission** ([read more](https://devblogs.microsoft.com/python/idiomatic-python-eafp-versus-lbyl/)) 57 | 5. Efficient SQL Queries 58 | 59 | Don't worry, if you do not understand all of the above principles right now. You'll understand and appreciate them as you work more with the framework. 60 | 61 | # Resources 62 | 63 | ## MVC (Model-View-Controller) core architecture 64 | 65 | [Understanding the MVC pattern in Django](https://medium.com/shecodeafrica/understanding-the-mvc-pattern-in-django-edda05b9f43f) 66 | 67 | ## Basic 68 | 69 | Here is a complete tutorial in Django 70 | 71 | [Django Web Framework (Python)](https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django) 72 | 73 | Alternatively, another popular Django learning site is Django Girls. 74 | 75 | [Django Girls Tutorial](https://tutorial.djangogirls.org/en/) 76 | 77 | With so much serious content, you could also do well with something less technical. Here you go! 78 | 79 | [A Complete Beginner's Guide to Django - Part 1](https://simpleisbetterthancomplex.com/series/2017/09/04/a-complete-beginners-guide-to-django-part-1.html) 80 | 81 | Being just introduced to Django, it would be of help to get tips from time tested users of Django. 82 | 83 | [Article Archive - Simple is Better Than Complex](https://simpleisbetterthancomplex.com/archive/) 84 | 85 | ## User Authentication System 86 | 87 | Creating a backend without user login and authentication is incomplete. A user authentication system makes the app personalised for users. It takes the web app to altogether another level. Django has a built in authentication system,getting your work done with almost no effort, giving you most of the joy. 88 | 89 | Here you can learn more about it: 90 | 91 | [Django Login and Logout Tutorial | LearnDjango](https://learndjango.com/tutorials/django-login-and-logout-tutorial) 92 | 93 | For Custom Login UI, try out this: 94 | 95 | [](https://www.fir3net.com/Web-Development/Django/django.html) 96 | 97 | # Challenge and Submission 98 | 99 | This Blog is a part of [CSoC'21 Dev Backend](csoc21-backend). 100 | 101 | Remember, deadline for this task is **July 24th, 2021 23:59.** 102 | 103 | **So much for learning, here is your next Assignment!** 104 | 105 | **All the details of the task are provided in the [](https://github.com/COPS-IITBHU/csoc-2020-task-2/blob/master/README.md)[README.md](https://github.com/COPS-IITBHU/csoc-2021-task-4-Django/blob/master/README.md) file.** 106 | 107 | **As you are aware, you need to fork from and the repository, clone the forked repository, complete the task, commit and push your changes and finally open the pull request back here.** 108 | 109 | [COPS-IITBHU/csoc-2021-task-4-Django](https://github.com/COPS-IITBHU/csoc-2021-task-4-Django) 110 | -------------------------------------------------------------------------------- /content/blog/csoc21-frontend-week2-Native-Android.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Android Development & Storage 3 | date: 2021-06-15T11:51:59.091Z 4 | subtitle: "Android uses a file system that's similar to disk-based file systems on other platforms." 5 | parentBlog: Native Android 6 | author: COPS SDG 7 | featureImage: /blog/android.webp 8 | --- 9 | 10 | # Native Android & Storage 11 | 12 | # Introduction 13 | 14 | Android uses a file system that's similar to disk-based file systems on other platforms. The system provides several options for you to save your app data: 15 | 16 | - **App-specific storage:** Store files that are meant for your app's use only, either in dedicated directories within an internal storage volume or different dedicated directories within external storage. Use the directories within internal storage to save sensitive information that other apps shouldn't access. 17 | - **Shared storage:** Store files that your app intends to share with other apps, including media, documents, and other files. 18 | - **Preferences:** Store private, primitive data in key-value pairs. 19 | - **Databases:** Store structured data in a private database using the Room persistence library. 20 | 21 | [](https://developer.android.com/training/data-storage) 22 | 23 | # Storing data locally 24 | 25 | ## Using Shared Preferences 26 | 27 | Shared Preferences is the way to go if you’re saving primitive data as key-value pairs. It requires a key, which is a String, and the corresponding value for the said key. The value can be any of the following: a boolean, float, int, long, or another string. 28 | 29 | []() 30 | 31 | [Shared Preferences in Android with Example - GeeksforGeeks](https://www.geeksforgeeks.org/shared-preferences-in-android-with-examples/) 32 | 33 | [https://www.youtube.com/watch?v=fJEFZ6EOM9o](https://www.youtube.com/watch?v=fJEFZ6EOM9o) 34 | 35 | ## Using internal storage 36 | 37 | It is specifically for when you need to store data on the file system, but you don’t want other apps or users to have access. This data storage is so private, in fact, that it’s deleted from the device as soon as you uninstall your app. 38 | 39 | [Internal Storage in Android with Example - GeeksforGeeks](https://www.geeksforgeeks.org/internal-storage-in-android-with-example/) 40 | 41 | [](https://www.youtube.com/channel/UC_Fh8kvtkVPkeihBs42jGcA) 42 | 43 | ## External Storage 44 | 45 | To give users better control over their files and cut down on clutter, apps now have scoped access to external storage by default. This means that they can tap into the specific directory on external storage and the media that the app creates. 46 | 47 | [Android External Storage with Examples - Tutlane](https://www.tutlane.com/tutorial/android/android-external-storage-with-examples#:~:text=In) 48 | 49 |
50 | 51 |
52 | 53 | ## SQLite database 54 | 55 | Android provides support for apps to use SQLite databases for data storage. The databases you create remain specific to your app and can only be accessed inside your app. Of course, you should have at least some knowledge of SQL before you attempt to store data with an SQLite database. 56 | 57 | []() 58 | 59 | We recommend using android library "Room" to make task easier. 60 | 61 | ### Room database Library 62 | 63 | The Room persistence library provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite. In particular, Room provides the following benefits: 64 | 65 | - Compile-time verification of SQL queries. 66 | - Convenience annotations that minimize repetitive and error-prone boilerplate code. 67 | - Streamlined database migration paths. 68 | 69 | Because of these considerations, we highly recommend that you use Room instead of [using the SQLite APIs directly](https://developer.android.com/training/data-storage/sqlite). 70 | 71 | [](https://developer.android.com/training/data-storage/room) 72 | 73 | [https://www.youtube.com/watch?v=ONb_MuPBBlg](https://www.youtube.com/watch?v=ONb_MuPBBlg) 74 | 75 | ## NOTE: 76 | 77 | Don't forget to give permissions to your app for accessing your device local storage . 78 | 79 | # Challenge and submission 80 | 81 | This Blog is a part of [CSoC'21 Dev Frontend](/blog/csoc21-frontend). 82 | 83 | Remember, deadline for this task is **June 21st, 2021 23:59.** 84 | 85 | Let's dig in to the challenges of this week . 86 | 87 | [COPS-IITBHU/csoc-2021-task-2](https://github.com/COPS-IITBHU/csoc-2021-task-2) 88 | 89 | All details have been provided in the README.md file. 90 | 91 | For submission create your own repo and make a PR in above repo and add your entry into [**Android.md**](https://github.com/COPS-IITBHU/csoc-2021-task-2/blob/master/Android.md) with **apk link and repo link only .** 92 | -------------------------------------------------------------------------------- /pages/index.vue: -------------------------------------------------------------------------------- 1 | 54 | 55 | 144 | 145 | 192 | -------------------------------------------------------------------------------- /nuxt.config.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | // Target (https://go.nuxtjs.dev/config-target) 3 | target: 'static', 4 | loading: { 5 | color: '#23CFFF', 6 | height: '3px' 7 | }, 8 | // Global page headers (https://go.nuxtjs.dev/config-head) 9 | head: { 10 | titleTemplate: 'SDG Site - %s', 11 | meta: [ 12 | { charset: 'utf-8' }, 13 | { name: 'viewport', content: 'width=device-width, initial-scale=1' }, 14 | { 15 | hid: 'description', 16 | name: 'description', 17 | content: 18 | 'We at Club of Programmers Software Development Group are a bunch of designers and developers who aim to encourage the development of technology and innovation in IIT BHU campus (and beyond) by learning, sharing knowledge and solving problems.' 19 | }, 20 | { hid: 'og:type', property: 'og:type', content: 'website' }, 21 | { 22 | hid: 'og:title', 23 | property: 'og:title', 24 | content: 'COPS SDG' 25 | }, 26 | { 27 | hid: 'og:url', 28 | property: 'og:url', 29 | content: 'https://sdg.copsiitbhu.ac.in/' 30 | }, 31 | { 32 | hid: 'og:description', 33 | property: 'og:description', 34 | content: 'We at Club of Programmers Software Development Group are a bunch of designers and developers who aim to encourage the development of technology and innovation in IIT BHU campus (and beyond) by learning, sharing knowledge and solving problems.' 35 | }, 36 | { 37 | hid: 'og:image', 38 | property: 'og:image', 39 | content: 'https://cdn.discordapp.com/attachments/937985097779519531/941616659720966144/COPS-Logo.webp' 40 | }, 41 | { name: 'twitter:card', content: 'summary_large_image' }, 42 | { 43 | hid: 'twitter:url', 44 | name: 'twitter:url', 45 | content: 'https://sdg.copsiitbhu.ac.in/' 46 | }, 47 | { 48 | hid: 'twitter:title', 49 | name: 'twitter:title', 50 | content: 'COPS SDG' 51 | }, 52 | { 53 | hid: 'twitter:description', 54 | name: 'twitter:description', 55 | content: 'We at Club of Programmers Software Development Group are a bunch of designers and developers who aim to encourage the development of technology and innovation in IIT BHU campus (and beyond) by learning, sharing knowledge and solving problems.' 56 | }, 57 | { 58 | hid: 'twitter:image', 59 | name: 'twitter:image', 60 | content: 'https://cdn.discordapp.com/attachments/937985097779519531/941616659720966144/COPS-Logo.webp' 61 | } 62 | ], 63 | link: [ 64 | { rel: 'icon', type: 'image/png', href: 'static/COPS-Logo.webp' }, 65 | { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }, 66 | { rel: 'mask-icon', href: '/safari-pinned-tab.svg', color: '#5bbad5' }, 67 | { 68 | rel: 'apple-touch-icon', 69 | size: '180x180', 70 | href: '/apple-touch-icon.png' 71 | } 72 | ] 73 | }, 74 | 75 | // Global CSS (https://go.nuxtjs.dev/config-css) 76 | css: ['@/assets/variables.scss'], 77 | 78 | // Plugins to run before rendering page (https://go.nuxtjs.dev/config-plugins) 79 | plugins: [], 80 | 81 | // Auto import components (https://go.nuxtjs.dev/config-components) 82 | components: true, 83 | 84 | // Modules for dev and build (recommended) (https://go.nuxtjs.dev/config-modules) 85 | buildModules: [ 86 | // https://go.nuxtjs.dev/typescript 87 | '@nuxt/typescript-build', 88 | 'nuxt-windicss', 89 | '@nuxtjs/composition-api/module', 90 | 'nuxt-purge-icons-module', 91 | '@nuxt/image', 92 | 'nuxt-gsap-module', 93 | [ 94 | 'unplugin-icons/nuxt', 95 | { 96 | /* options */ 97 | } 98 | ] 99 | ], 100 | 101 | // Modules (https://go.nuxtjs.dev/config-modules) 102 | modules: [ 103 | // https://go.nuxtjs.dev/axios 104 | '@nuxtjs/axios', 105 | // https://go.nuxtjs.dev/pwa 106 | '@nuxtjs/pwa', 107 | // https://go.nuxtjs.dev/content 108 | '@nuxt/content', 109 | '@nuxtjs/sitemap', 110 | '@nuxtjs/robots' 111 | ], 112 | 113 | // Axios module configuration (https://go.nuxtjs.dev/config-axios) 114 | axios: {}, 115 | 116 | // Content module configuration (https://go.nuxtjs.dev/config-content) 117 | content: { 118 | liveEdit: false 119 | }, 120 | 121 | /* 122 | ** Build configuration 123 | ** See https://nuxtjs.org/api/configuration-build/ 124 | */ 125 | build: { 126 | extractCSS: { 127 | ignoreOrder: true 128 | }, 129 | optimization: { 130 | splitChunks: { 131 | cacheGroups: { 132 | styles: { 133 | name: 'styles', 134 | test: /\.(css|vue|scss)$/, 135 | chunks: 'all', 136 | enforce: true 137 | } 138 | } 139 | } 140 | } 141 | }, 142 | sitemap: { 143 | hostname: 'https://sdg.copsiitbhu.co.in' 144 | }, 145 | generate: { 146 | crawler: true, 147 | fallback: true, 148 | interval: 2000 149 | }, 150 | robots: { 151 | UserAgent: '*', 152 | Allow: '*' 153 | }, 154 | windicss: { 155 | scan: { 156 | dirs: ['./'], 157 | exclude: ['node_modules', 'dist', '.git', '.github', '.nuxt'] 158 | }, 159 | preflight: { 160 | alias: { 161 | // add nuxt aliases 162 | 'nuxt-link': 'a', 163 | // @nuxt/image module 164 | 'nuxt-img': 'img' 165 | } 166 | }, 167 | analyze: true 168 | }, 169 | gsap: { 170 | extraPlugins: { 171 | scrollTo: true, 172 | scrollTrigger: true 173 | } 174 | } 175 | } 176 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | contact@copsiitbhu.co.in. 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. 129 | -------------------------------------------------------------------------------- /content/blog/inter-iit-consensys-mid-prep.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Metamask Snaps Inter-IIT 3 | date: 2023-03-14T11:59:59.091Z 4 | description: 'Designed using Metamask Snaps. This was an inter-IIT Tech Meet 11.0 Consensys mid-prep submission which won Silver Medal' 5 | author: Aaryan Kumar 6 | featureImage: /blog/metamask.webp 7 | --- 8 | 9 | **The Tale of the Missing Seed: How to Recover Your Metamask Wallet in case you forget the 12 word seed phrase.** 10 | ================================================================================================================= 11 | 12 | **Team Members-** 13 | Shaan Kumar, Nishtha Bodani, Ankur Patil, Sahil Saini, Aadeesh Oswal, Partik Singh, Aaryan Kumar, Pallav Agarwal 14 | Thanking our Mentors - Arpit Shukla, Sanchit Gupta, Eshwar 15 | 16 | **Preamble-** 17 | 18 | The idea was proposed and designed for the Inter IIT 11.0 hackathon conducted by Consensys where our team bagged a Silver Medal. We would like to thank Consensys for providing us with an opportunity where our innovation could be valued on a larger scale. The learning and the experience during the course of designing was phenomenal. 19 | 20 | **Problem Statement-** 21 | 22 | Extend the functionality of MetaMask. The most popular wallet is now an extensible platform for permissionless innovation. Bring your features and APIs to MetaMask with Snaps. The idea should be innovative, functional and impactful. 23 | 24 | **Introduction-** 25 | 26 | Cryptocurrency has been making headlines for the past decade. It has revolutionized the financial industry and the way we perceive traditional currency. Unlike traditional currency, cryptocurrencies operate independently of any central authority and are decentralized. 27 | 28 | Metamask is one of the popular cryptocurrency wallets that enables the users to access the Web3 ecosystem of decentralized applications through which one can trade and store a prominent cryptocurrency known as Ethereum. There are more than a million users currently on metamask, out of which multiple of them are exploring other domains of web3 in the market namely: 29 | 30 | 1. DAO — Also known as Decentralized Autonomous Organization, is a type of organization that is run by rules encoded as computer programs on a blockchain for transparent and tamper-proof decision making by members. 31 | 2. Opensea — It is a decentralized marketplace for buying, selling, and discovering unique digital assets like NFTs on the Ethereum blockchain. 32 | 3. Etherscan — It is a popular blockchain explorer for the Ethereum blockchain. It provides a detailed overview of Ethereum transactions. 33 | 34 | **Problems covered-** 35 | 36 | 1. _While Metamask offers many features, one important feature that is currently missing is a notification system._ 37 | 38 | Without a notification system, Metamask users are unable to receive alerts when important events occur, such as incoming transactions, active DAO proposals and offers made on their NFT to name a few. This means that users must manually check their wallet and their respective websites to see if any actions require their attention, which can be time-consuming and inconvenient. 39 | 40 | _2\. Another necessary feature that is currently missing is the ability to recover an account in the event of a lost or forgotten password._ 41 | 42 | Without an account recovery system, users risk losing access to their funds and assets if they forget their password or lose their private key. This can result in significant financial losses and can be a major source of frustration for users. Moreover, without an account recovery system, users may be reluctant to use Metamask for long-term storage of their cryptocurrencies and may instead turn to other wallets that offer account recovery options. 43 | 44 | **Technical Details-** 45 | 46 | Metamask Snaps is a customizable feature that enables users to add or remove modular plugins called “snaps” to their wallet. These snaps can add new functionality or integrations to the wallet such as support for new blockchain networks, DeFi protocols, and gaming applications. With Metamask Snaps, users can easily tailor their wallet to their needs without technical knowledge. Developers can create new snaps that integrate with emerging platforms, allowing users to access new services directly from their wallet. Metamask Snaps is a versatile and powerful feature that advances the adoption of the decentralized finance ecosystem. 47 | 48 | **Proposed Solution-** 49 | 50 | Due to limited modifications one can do with metamask snaps, initially we all were scratching our heads and thinking day and night with the hope to make more significant changes to our wallet. We ultimately came up with great impactful ideas within the confines of the available snaps and appreciate the added functionality they provided. 51 | 52 | We are introducing a DApp known as SnapX which provide the users with 2 features; 53 | 54 | ★ _Snap Alert_ — With the help of Snap-Alert, the users can: 55 | 56 | * Receive notification whenever a proposal is launched by any of the DAOs they follow. 57 | * Receive updates whenever someone sends Ethereum to their Metamask wallet. 58 | * Receive alerts when a buyer makes an offer on their published NFT on OpenSea. 59 | 60 | ★ _Snap Recovery_ — In case where the users lose their private key, an additional method is provided to recover the wallet via recovery key, which is even more secure than the seed phrase, because the users can easily make Recovery Key public unlike seed phrase. This is a much more viable approach since it can’t be exploited, as the recovery key is generated with the encryption of the seed phrase and the face ID of the user which has to be set up by the user initially along with a 4 digit pin. 61 | 62 | **Quick Links:-** 63 | 64 | If you want to explore more about this project or watch a demo video, kindly visit this link — [What does the fox say?](https://github.com/ankur12-1610/snapx) 65 | -------------------------------------------------------------------------------- /content/blog/csoc21-backend-week4-Express.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Basics of ExpressJS 3 | date: 2020-06-22T11:51:59.091Z 4 | description: 'So After Frontend, we are left with Web Backend to gain a good command over web dev. That is why we bring you here, to Express!' 5 | parentBlog: ExpressJS 6 | author: COPS SDG 7 | featureImage: /blog/Nodejs.webp 8 | --- 9 | 10 | # Express 11 | 12 | # Introduction 13 | 14 | Express is a Javascript Framework. This lets developers to develop their application without caring much for language difference in backend and frontend part of applications. 15 | 16 | Here is a brief intro to why we use Express: 17 | 18 | [What is Express.js? | Why should use Express.js? | Features of Express.js](https://www.besanttechnologies.com/what-is-expressjs) 19 | 20 | Check out the guide in official website: 21 | 22 | [Express - Node.js web application framework](https://expressjs.com/) 23 | 24 | # Resources 25 | 26 | ## MVC (Model-View-Controller) core architecture 27 | 28 | You don't have to understand code in below tutorial, but just understand how we organize our project in a MVC architecture so that things are easily manageable even if our project is super giant. 29 | 30 | [Understanding MVC pattern in Nodejs](https://dev.to/eaetukudo/understanding-mvc-pattern-in-nodejs-2bdn) 31 | 32 | ## Basic 33 | 34 | Here is a complete tutorial in Exppress 35 | 36 | [Express web framework (Node.js/JavaScript) - Learn web development | MDN](https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs) 37 | 38 | Alternatively, if you like videos as tutorials. 39 | 40 | [Node.js With Passport Authentication | Full Project](https://youtu.be/6FOq4cUdH8k) 41 | 42 | [Express JS Crash Course](https://youtu.be/L72fhGm1tfE) 43 | 44 | ## Using Mongodb Database with express 45 | 46 | Express provides support for using both Relational and NoSQL databases. Relation databases are generally derivative of SQL family data bases where one has to define different tables and relations between them for storing data. NoSQL databases do not use the traditional tables and relation format for storing data. Hence this becomes handy as developers get the freedom to store the data just in format it is used in their application. So, we will be using Mongodb a famous rival of SQL database family. 47 | 48 | This tutorial from MDN will help you get started with using Mongodb: 49 | 50 | [Express Tutorial Part 3: Using a Database (with Mongoose) - Learn web development | MDN](https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/mongoose) 51 | 52 | Although freedom to store data just as it is used in application is helpful. It can also make life of developers terrible if there is no standard definitions about what is the format of data being stored. One cannot imagine using a data without knowing what it contains. So it becomes necessary to define some formal definitions (schema) and relations so that data can be used efficiently in the application. To help with this task another javascript framework **Mongoose** comes to rescue. There is no better way to learn using Mongoose than going through its documentation. 53 | 54 | [Mongoose v5.13.2: Schemas](https://mongoosejs.com/docs/guides.html) 55 | 56 | Populating relations in mongoose models: 57 | 58 | [Mongoose v5.13.2: Query Population](https://mongoosejs.com/docs/populate.html) 59 | 60 | ## Writing views in express 61 | 62 | Express uses template engine for rendering views. The Express application generator uses [Jade](https://www.npmjs.com/package/jade) as its default, but it also supports several others. Some great names in this list are [Pug](https://pugjs.org/api/getting-started.html), [Mustache](https://www.npmjs.com/package/mustache), and [Ejs](https://www.npmjs.com/package/ejs). 63 | 64 | We will use **[Ejs](https://www.npmjs.com/package/ejs)** for this task so we will focus on its tutorials here. But at the end we've attached official express documentation about templating support in express to quench your curiosity. 65 | 66 | [ejs](https://www.npmjs.com/package/ejs) 67 | 68 | [EJS](https://ejs.co/) 69 | 70 | In order to learn more about template engine support in Express check out the official guide: 71 | 72 | [Using template engines with Express](https://expressjs.com/en/guide/using-template-engines.html) 73 | 74 | ## User Authentication System 75 | 76 | Creating a backend without user login and authentication is incomplete. A user authentication system makes the app personalized for users. It takes the web app to altogether another level. There are several ways for authentication when working with `Express.js`. In you task we are using `passport` framework. 77 | 78 | Here you can learn more about it: 79 | 80 |
81 | 82 |
83 | 84 | [Documentation](http://www.passportjs.org/docs/) 85 | 86 | _We are sure by now you've realized that world of web development is dominated by javascript._ 87 | 88 | ## Challenge and submission 89 | 90 | This Blog is a part of [CSoC'21 Dev Backend](csoc21-backend). 91 | 92 | Remember, deadline for this task is **July 24th, 2021 23:59.** 93 | 94 | **So much for learning, here is your next Assignment!** 95 | 96 | **All the details of the task are provided in the [](https://github.com/COPS-IITBHU/csoc-2020-task-2/blob/master/README.md)[README.md](https://github.com/COPS-IITBHU/csoc2021-task4-express#readme) file.** 97 | 98 | **As you are aware, you need to fork from and the repository, clone the forked repository, complete the task, commit and push your changes and finally open the pull request back here.** 99 | 100 | [COPS-IITBHU/csoc2021-task4-express](https://github.com/COPS-IITBHU/csoc2021-task4-express) 101 | -------------------------------------------------------------------------------- /.all-contributorsrc: -------------------------------------------------------------------------------- 1 | { 2 | "files": [ 3 | "README.md" 4 | ], 5 | "imageSize": 100, 6 | "commit": false, 7 | "contributors": [ 8 | { 9 | "login": "IamEzio", 10 | "name": "Anshuman Maurya", 11 | "avatar_url": "https://avatars.githubusercontent.com/u/89375125?v=4", 12 | "profile": "https://github.com/IamEzio", 13 | "contributions": [ 14 | "ideas", 15 | "maintenance", 16 | "code" 17 | ] 18 | }, 19 | { 20 | "login": "tiger-yash", 21 | "name": "Yash Raj", 22 | "avatar_url": "https://avatars.githubusercontent.com/u/74406801?v=4", 23 | "profile": "https://tiger-yash.github.io/", 24 | "contributions": [ 25 | "maintenance" 26 | ] 27 | }, 28 | { 29 | "login": "S-kus", 30 | "name": "Saumya Kushwaha", 31 | "avatar_url": "https://avatars.githubusercontent.com/u/86892991?v=4", 32 | "profile": "https://github.com/S-kus", 33 | "contributions": [ 34 | "code" 35 | ] 36 | }, 37 | { 38 | "login": "Tarun-Arora", 39 | "name": "Tarun Arora", 40 | "avatar_url": "https://avatars.githubusercontent.com/u/78356489?v=4", 41 | "profile": "https://github.com/Tarun-Arora", 42 | "contributions": [ 43 | "code", 44 | "bug" 45 | ] 46 | }, 47 | { 48 | "login": "shubhangi013", 49 | "name": "Shubhangi Choudhary", 50 | "avatar_url": "https://avatars.githubusercontent.com/u/78342516?v=4", 51 | "profile": "https://shubhangi013.netlify.app/", 52 | "contributions": [ 53 | "doc" 54 | ] 55 | }, 56 | { 57 | "login": "somesh202", 58 | "name": "Somesh Ranjan", 59 | "avatar_url": "https://avatars.githubusercontent.com/u/77766761?v=4", 60 | "profile": "https://github.com/somesh202", 61 | "contributions": [ 62 | "code" 63 | ] 64 | }, 65 | { 66 | "login": "yash2002109", 67 | "name": "Yash Prakash", 68 | "avatar_url": "https://avatars.githubusercontent.com/u/77677278?v=4", 69 | "profile": "https://github.com/yash2002109", 70 | "contributions": [ 71 | "code", 72 | "bug" 73 | ] 74 | }, 75 | { 76 | "login": "devansh12b2", 77 | "name": "Devansh Mishra", 78 | "avatar_url": "https://avatars.githubusercontent.com/u/79010144?v=4", 79 | "profile": "https://github.com/devansh12b2", 80 | "contributions": [ 81 | "code", 82 | "bug" 83 | ] 84 | }, 85 | { 86 | "login": "lelouch-of-the-code", 87 | "name": "Anii", 88 | "avatar_url": "https://avatars.githubusercontent.com/u/79158719?v=4", 89 | "profile": "https://github.com/lelouch-of-the-code", 90 | "contributions": [ 91 | "code" 92 | ] 93 | }, 94 | { 95 | "login": "debarati-06", 96 | "name": "Debarati Bandopadhyay", 97 | "avatar_url": "https://avatars.githubusercontent.com/u/85282947?v=4", 98 | "profile": "https://github.com/debarati-06", 99 | "contributions": [ 100 | "code", 101 | "bug" 102 | ] 103 | }, 104 | { 105 | "login": "Manan-Rathi", 106 | "name": "Manan Rathi", 107 | "avatar_url": "https://avatars.githubusercontent.com/u/76519771?v=4", 108 | "profile": "https://github.com/Manan-Rathi", 109 | "contributions": [ 110 | "code", 111 | "review" 112 | ] 113 | }, 114 | { 115 | "login": "jyshdewangan", 116 | "name": "Jayesh Dewangan", 117 | "avatar_url": "https://avatars.githubusercontent.com/u/76793133?v=4", 118 | "profile": "https://github.com/jyshdewangan", 119 | "contributions": [ 120 | "code" 121 | ] 122 | }, 123 | { 124 | "login": "Arvind0302", 125 | "name": "Arvind Yadav.", 126 | "avatar_url": "https://avatars.githubusercontent.com/u/82073257?v=4", 127 | "profile": "https://github.com/Arvind0302", 128 | "contributions": [ 129 | "code" 130 | ] 131 | }, 132 | { 133 | "login": "MohitSharma-21", 134 | "name": "Mohit Sharma", 135 | "avatar_url": "https://avatars.githubusercontent.com/u/82596483?v=4", 136 | "profile": "https://github.com/MohitSharma-21", 137 | "contributions": [ 138 | "code" 139 | ] 140 | }, 141 | { 142 | "login": "EshaanAgg", 143 | "name": "Eshaan Aggarwal", 144 | "avatar_url": "https://avatars.githubusercontent.com/u/96648934?v=4", 145 | "profile": "https://eshaanagg.netlify.app/", 146 | "contributions": [ 147 | "code", 148 | "maintenance" 149 | ] 150 | }, 151 | { 152 | "login": "soustab10", 153 | "name": "Soustab Haldar", 154 | "avatar_url": "https://avatars.githubusercontent.com/u/95632583?v=4", 155 | "profile": "https://github.com/soustab10", 156 | "contributions": [ 157 | "code", 158 | "ideas" 159 | ] 160 | }, 161 | { 162 | "login": "vcvedika", 163 | "name": "Vedika Chandra", 164 | "avatar_url": "https://avatars.githubusercontent.com/u/94168243?v=4", 165 | "profile": "https://github.com/vcvedika", 166 | "contributions": [ 167 | "code", 168 | "design" 169 | ] 170 | }, 171 | { 172 | "login": "shriya-tiwari", 173 | "name": "Shriya Tiwari", 174 | "avatar_url": "https://avatars.githubusercontent.com/u/96806111?v=4", 175 | "profile": "https://github.com/shriya-tiwari", 176 | "contributions": [ 177 | "code", 178 | "design" 179 | ] 180 | } 181 | ], 182 | "contributorsPerLine": 7, 183 | "projectName": "sdg-site", 184 | "projectOwner": "COPS-IITBHU", 185 | "repoType": "github", 186 | "repoHost": "https://github.com", 187 | "skipCi": true, 188 | "commitConvention": "angular" 189 | } 190 | -------------------------------------------------------------------------------- /components/about-us/carousel/carousel-slide.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 177 | 178 | 200 | -------------------------------------------------------------------------------- /pages/aboutus/index.vue: -------------------------------------------------------------------------------- 1 | 49 | 50 | 132 | -------------------------------------------------------------------------------- /content/blog/csoc21-backend-week5-Express-REST-Framework.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Express REST Framework 3 | date: 2020-07-14T11:51:59.091Z 4 | description: 'Express provides support for using both Relational and NoSQL databases.Creating a backend without user login and authentication is incomplete.' 5 | parentBlog: ExpressJS 6 | author: COPS SDG 7 | featureImage: /blog/Nodejs.webp 8 | --- 9 | 10 | # ExpressJS 11 | 12 | ## Introduction - Basic Resources 13 | 14 | Here is a complete tutorial in Express 15 | 16 | [Express web framework (Node.js/JavaScript) - Learn web development | MDN](https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs) 17 | 18 | [Using middleware](https://expressjs.com/en/guide/using-middleware.html) 19 | 20 | [Writing middleware for use in Express apps](https://expressjs.com/en/guide/writing-middleware.html) 21 | 22 | [How To Create a Custom Middleware in Express.js | DigitalOcean](https://www.digitalocean.com/community/tutorials/nodejs-creating-your-own-express-middleware) 23 | 24 | Alternatively, if you like videos as tutorials. 25 | 26 |
27 | 28 |
29 | 30 | ## Using Mongodb Database with express 31 | 32 | Express provides support for using both Relational and NoSQL databases. Relation databases are generally derivative of SQL family data bases where one has to define different tables and relations between them for storing data. NoSQL databases do not use the traditional tables and relation format for storing data. Hence this becomes handy as developers get the freedom to store the data just in format it is used in their application. So, we will be using Mongodb a famous rival of SQL database family. 33 | 34 | This tutorial from MDN will help you get started with using Mongodb: 35 | 36 | [Express Tutorial Part 3: Using a Database (with Mongoose) - Learn web development | MDN](https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/mongoose) 37 | 38 | Although freedom to store data just as it is used in application is helpful. It can also make life of developers terrible if there is no standard definitions about what is the format of data being stored. One cannot imagine using a data without knowing what it contains. So it becomes necessary to define some formal definitions (schema) and relations so that data can be used efficiently in the application. To help with this task another javascript framework **Mongoose** comes to rescue. There is no better way to learn using Mongoose than going through its documentation. 39 | 40 | [Mongoose v5.13.2: Schemas](https://mongoosejs.com/docs/guides.html) 41 | 42 | Populating relations in mongoose models: 43 | 44 | [Mongoose v5.13.2: Query Population](https://mongoosejs.com/docs/populate.html) 45 | 46 | ## User Authentication System 47 | 48 | Creating a backend without user login and authentication is incomplete. A user authentication system makes the app personalized for users. It takes the web app to altogether another level. There are several ways for authentication when working with `Express.js`. In you task we are using `passport` framework. 49 | 50 | Here you can learn more about it 51 | 52 |
53 | 54 |


55 | 56 |
57 | 58 |
59 | 60 | [Authentication and Authorization with JWTs in Express.js](https://stackabuse.com/authentication-and-authorization-with-jwts-in-express-js) 61 | 62 | [Documentation](http://www.passportjs.org/docs/) 63 | 64 | ## Testing the API 65 | 66 | Well anything untested is never reliable. We provide you resources for setting up applications that can help you with testing the APIs you made. You can choose anyone or both and learn more about them through resources we have attached or through whatever sources of you choice. 67 | 68 | [Desktop API Design Editor and API Client](https://insomnia.rest/products/insomnia) 69 | 70 | [API Client for REST, SOAP, & GraphQL Queries | Postman](https://www.postman.com/product/api-client/) 71 | 72 | ## RESTful APIs in Express 73 | 74 | [HTTP Methods for RESTful Services](https://www.restapitutorial.com/lessons/httpmethods.html#:~:text=The%20primary%20or%20most%2Dcommonly,but%20are%20utilized%20less%20frequently) 75 | 76 | [What are GET, POST, PUT, PATCH, DELETE? A walkthrough with JavaScript's Fetch API.](https://medium.com/@9cv9official/what-are-get-post-put-patch-delete-a-walkthrough-with-javascripts-fetch-api-17be31755d28) 77 | 78 |
79 | 80 |
81 | 82 | ## Challenge and submission 83 | 84 | This Blog is a part of [CSoC'21 Dev Backend](csoc21-backend). 85 | 86 | Remember, deadline for this task is **August 7th, 2021 23:59.** 87 | 88 | **So much for learning, here is your next Assignment!** 89 | 90 | **All the details of the task are provided in the [README.md](https://github.com/COPS-IITBHU/CSOC-2021-task-5-Express-Apis/blob/master/README.md) file.** 91 | 92 | **As you are aware, you need to fork from and the repository, clone the forked repository, complete the task, commit and push your changes and finally open the pull request back here.** 93 | 94 | [GitHub - COPS-IITBHU/CSOC-2021-task-5-Express-Apis](https://github.com/COPS-IITBHU/CSOC-2021-task-5-Express-Apis) 95 | -------------------------------------------------------------------------------- /content/blog/csoc21-frontend-week1-Native-Android.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Basics of Android Development 3 | date: 2021-06-07T11:51:59.091Z 4 | description: 'The aptest definition for android is - "Android is a mobile operating system based on a modified version of the Linux kernel and other open-source software, designed primarily for touchscreen mobile devices such as smartphones and tablets."' 5 | parentBlog: Native Android 6 | author: COPS SDG 7 | featureImage: /blog/android.webp 8 | --- 9 | 10 | # Native Android 11 | 12 | # Introduction 13 | 14 | In short, we can say that it is an Operating system for touchscreen devices, and any device that runs on this Operating System is known as an Android Device. Now for every operating system, some applications can run on it to perform specific tasks. Similarly, for Android Devices, we have Android Apps that can run on them to perform specific tasks. 15 | 16 | The official language for Android development is Kotlin, but Java is still used in many famous courses and many projects, so you are free to use any of them. 17 | 18 | # Installation 19 | 20 | ### Android Studio 21 | 22 | Android Studio is the official Integrated Development Environment (IDE) for Android app development. This software is a bit heavy on normal systems (8 GB Ram & 1 TB HDD) and can be quite laggy for any systems below this configuration. 23 | 24 | While developing an android app you will need to test it on a device. You can test it in two ways - 25 | 26 | - Real Device (Preffered for slower systems) 27 | 28 | For testing you apps on a real device you will need to have a USB cable and an Android device. Follow this tutorial to enable USB debugging in order to run your app in the device. 29 | 30 | - Emulator 31 | 32 | An Android Emulator simulates Android devices on your computer so that you can test your application on a variety of devices and Android API levels without needing to have each physical device. It provides almost all of the capabilities of a real Android device. 33 | 34 | # How to get started 35 | 36 | If you haven't had any chance to develop android apps earlier then don't worry it's not too late to start now. Here are few resources to start with android development. 37 | 38 | - Video Tutorial 39 | 40 | [Android Development Tutorial for Beginners](https://www.youtube.com/playlist?list=PLUcsbZa0qzu3Mri2tL1FzZy-5SX75UJfb) 41 | 42 | [Android Tutorials [Beginner ]](https://www.youtube.com/playlist?list=PLgCYzUzKIBE8TUoCyjomGFqzTFcJ05OaC) 43 | 44 | - Written Tutorials 45 | 1. [Create A Project](https://developer.android.com/training/basics/firstapp/creating-project) 46 | 2. [Run Your App](https://developer.android.com/training/basics/firstapp/running-app) 47 | 3. [Include new UI](https://developer.android.com/training/basics/firstapp/building-ui) 48 | 4. [Make it functional](https://developer.android.com/training/basics/firstapp/starting-activity) 49 | 50 | # Challenge 51 | 52 | As an aspiring developer, you'd need to keep building things to keep your knowledge on tips. Now that you are good to go with the basics of native Android Development, we want you to build **one of the games** from the following list on your own. 53 | 54 | 1. Tic-Tac-Toe Game 55 | 2. Sudoku game 56 | 57 | You have to provide your Repo and APK File as part of submission 58 | 59 | ### **Judging** 60 | 61 | The evaluation would be done mainly on the following basis: 62 | 63 | 1. User Interface and User Experience 64 | 2. Authenticity and readability of the code 65 | 3. Completion of mentioned tasks 66 | 4. Bonus Points for implementing extra features depending on your creativity😉 67 | 68 | Remember, the deadline for this week's task is **June 13th, 2021, 23:59**. 69 | 70 | ## Tic Tac Toe 71 | 72 | **Objective:** You need to build a Tic Tac Toe game 73 | 74 | **Tasks:-** 75 | 76 | - **Task 1**: Implement a two-player mode that allows two people to compete against each other. 77 | - **Task 2**: Add a single-player mode that allows users to play with an intelligent bot that never loses. 78 | - **Task 3**: Add an option to select which shape to begin with (X/O). 79 | - **Task 4:** In single-player mode, add an option to choose who will start first - computer or player. 80 | - **Extras:** You may keep a record of scores and use player names for interactivity. 81 | 82 | **Resources** 83 | 84 | [Minimax Algorithm in Game Theory | Set 3 (Tic-Tac-Toe AI - Finding optimal move) - GeeksforGeeks](https://www.geeksforgeeks.org/minimax-algorithm-in-game-theory-set-3-tic-tac-toe-ai-finding-optimal-move/) 85 | 86 | ## Sudoku 87 | 88 | **Objective:** You need to build a Sudoku board game. 89 | 90 | **Tasks:-** 91 | 92 | - **Task 1**: Implement a Sudoku game. (The board may remain the same every time). 93 | - **Task 2**: Implement a board generator and generate a random board in every game. You may use backtracking or naive approaches to generate the board. 94 | - **Task 3:** Add a timer to the game, where the user may select a particular time to complete the game within it. **Bonus**: As the time reaches 0, the user can be warned about the time running out. 95 | - **Task 4:** Warning the user about incorrect inputs and user engagement. 96 | - **Extras:** To make the game more engaging, you may provide hints if the user is stuck for like 10-20 seconds. 97 | 98 | **Resources** 99 | 100 | [Program for Sudoku Generator - GeeksforGeeks](https://www.geeksforgeeks.org/program-sudoku-generator/) 101 | 102 | [Generating and solving Sudoku puzzles with Python](https://lvngd.com/blog/generating-and-solving-sudoku-puzzles-python/) 103 | 104 | # Submission 105 | 106 | This Blog is a part of [CSoC'21 Dev Frontend](/blog/csoc21-frontend). 107 | 108 | Remember, deadline for this task is **June 13th, 2021 23:59.** 109 | 110 | As done in the previous week, you'll fork the repository, add your repo and deployed site link into the list of submissions in the `Androd.md` file . Submit pull requests from your newly created branch for this challenge. 111 | 112 | [COPS-IITBHU/csoc-2021-task-1](https://github.com/COPS-IITBHU/csoc-2021-task-1) 113 | -------------------------------------------------------------------------------- /components/navbar.vue: -------------------------------------------------------------------------------- 1 | 87 | 127 | 198 | -------------------------------------------------------------------------------- /content/blog/csoc21-frontend-week0-Linux.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Linux 3 | date: 2021-05-30T11:51:59.091Z 4 | description: 'Linux has become the de facto OS of programmers worldwide, and so you all must get comfortable with it.' 5 | author: COPS SDG 6 | featureImage: /blog/linux-logo.webp 7 | --- 8 | 9 | # Linux 10 | 11 | # Introduction 12 | 13 | Surely you’ve all heard of Linux before; after all, it’s one of the tech buzzwords. But, let’s clarify that we use the word “Linux” here to refer to Linux as a distribution, which technically provides the full OS functionality. 14 | 15 | Linux has become the de facto OS of programmers worldwide, and so you all must get comfortable with it. Out of the variety of Linux distributions ( aka distros ) available in the market (i.e. FOSS market), Ubuntu or any Debian based Linux Distro is the most common and most natural to set up. 16 | 17 | The reason that most programmers prefer to use Linux Based OS because it is open source and hence the associated reliability and security. Alongside that, most of the program/software is first developed for Linux Distribution because of their widespread use. 18 | 19 | # Installation 20 | 21 | ### Ubuntu Only 22 | 23 | [Install Ubuntu desktop | Ubuntu](https://ubuntu.com/tutorials/tutorial-install-ubuntu-desktop?fbclid=IwAR3TUtu5aaPzHvAgq-ajwFWwQMvioIHcv8ZpKaxusvlIcnFgatW6t6uiPA8#1-overview) 24 | 25 | NOTE: Take precaution before choosing “Erase disk and Install Ubuntu”. It’ll replace your pre-installed OS with the new Ubuntu. Refer this tutorial for partitioning 26 | 27 | ### Dual Boot 28 | 29 | Please follow these steps properly and then refer the video 30 | 31 | - Disbale fast and secure boot on your system 32 | - Download ISO Image for Ubuntu 20.04 33 | 34 | [Download Ubuntu Desktop | Download | Ubuntu](https://ubuntu.com/download/desktop) 35 | 36 | - Make a bootable pendrive using **Balena Etcher** 37 | 38 | [balenaEtcher - Flash OS images to SD cards & USB drives](https://www.balena.io/etcher/) 39 | 40 |
41 | 42 |
43 | 44 | ### Hindi Variant for Dual Boot 45 | 46 |
47 | 48 |
49 | 50 | ### More Flavours 51 | 52 | Linux won't limit you like macOS or Windows where you have to wait for the owner companies to release new features and add new things to the appearance or functionality. You can try out other Linux Distros too if you are feeling to try something new something different. 53 | 54 | - Zorin OS - Appearance 55 | - Pop OS - Performance 56 | - Kali Linux - Toolbox 57 | - Deepin OS - Appearance ( Chinese ) 58 | - Elementary OS - Apple People 59 | 60 | ## Windows Subsystem for Linux 61 | 62 | Although not the recommended way to go about for any programmer, Windows finally had to support Ubuntu within its very system for programmers, which is known as WSL. WSL is a wrapper for Ubuntu presented to you in your old and clanky Windows 10 :P. 63 | 64 | Sooner or later you will have to switch to Linux for Software Development purposes. But if you are a bit afraid of damaging your system during installation you can check out the following WSL resources. 65 | 66 | [What is Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/about) 67 | 68 |
69 | 70 |
71 | 72 | **Note** you won't be shown your password as you type it in for the first time so make sure you don't type in something random as you will need that password. 73 | 74 | ## Commands 75 | 76 | The command line is a very powerful tool that you must master to be a good developer. 77 | 78 | Here is a video to start. 79 | 80 |
81 | 82 |
83 | 84 | ### Here is a great place to get started 85 | 86 | [The Top 10 Linux Commands Every Programmer Should Know](https://dev.to/harvey/the-top-10-linux-commands-every-programmer-should-know-11hf) 87 | 88 | [](https://maker.pro/linux/tutorial/basic-linux-commands-for-beginners) 89 | 90 | ### To install a package you have to use APT for Debian Based Linux 91 | 92 | [Using apt Commands in Linux [Complete Guide] - It's FOSS](https://itsfoss.com/apt-command-guide/) 93 | 94 | [Using Snap Packages In Ubuntu & Other Linux [Complete Guide]](https://itsfoss.com/use-snap-packages-ubuntu-16-04/) 95 | 96 | # Assignment 97 | 98 | Finally, we’ve reached on to give you your first assignment! A Bandit challenge where you can practice all the shell commands you’ve learnt so far: 99 | 100 | You have a whole week so complete at least 15 levels and finally, store all the passwords in a file. You’ll get a really good practice in using shell and how you can use different commands. 101 | 102 | [Bandit](http://overthewire.org/wargames/bandit/) 103 | 104 | # Submission 105 | 106 | This Blog is a part of [CSoC'21 Dev Frontend](/blog/csoc21-frontend). 107 | 108 | Remember, deadline for this task is **June 6th, 2021 23:59.** 109 | 110 | You are required to store the list of passwords and commands you used to get the password of a level in another file - use; to separate each command of a particular level. Once done, submit both the files via this form: 111 | 112 | [Google Forms - create and analyze surveys, for free.](https://docs.google.com/forms/d/e/1FAIpQLSc9v1kJLTwQN3HxjkCPWsFtr1XMQVYcJkC1PVQ-k4EeJIcEpA/viewform) 113 | -------------------------------------------------------------------------------- /content/blog/csoc21-frontend-week3-Flutter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Flutter (Network Calls) 3 | date: 2020-06-22T11:51:59.091Z 4 | description: 'What happens when you log out of your Social Media account from one device and open it again on a different device? You see that all your chat messages, profile picture, groups etc. are preserved. It feels like you never changed your device at all. But how did this happen?' 5 | parentBlog: Flutter 6 | author: COPS SDG 7 | featureImage: /blog/Flutter.webp 8 | --- 9 | 10 | # Flutter (Network Calls) 11 | 12 | # Introduction 13 | 14 | What happens when you log out of your Social Media account from one device and open it again on a different device? You see that all your chat messages, profile picture, groups etc. are preserved. It feels like you never changed your device at all. But how did this happen? 15 | 16 | This can be made possible if we have a system that can store our app-data online and whenever required, this data can be provided to the client apps. For doing so our apps should be able to send and receive data to and from the Internet, and hence we need to learn about making network calls and online data storage. 17 | 18 | ## Components of an Application 19 | 20 | - A backend server that supplies the API endpoints to the frontend. 21 | 22 | [Back-End Web Architecture | Codecademy](https://www.codecademy.com/articles/back-end-architecture) 23 | 24 | Endpoints are important aspects of interacting with server-side web APIs, as they specify where resources lie that can be accessed by third party software. Usually the access is via a URI to which HTTP requests are posted, and from which the response is thus expected. 25 | 26 | [An Introduction To Backend Development and REST APIs](https://medium.com/techloop/an-introduction-to-backend-development-and-rest-apis-b1a1a978821f) 27 | 28 | - A server environment (we shall use node) and HTTPS server that listens to server ports and sends responses from the server back to the client (Also known as MiddleWare). 29 | 30 | [The HTTP Server Explained](https://medium.com/@gabriellamedas/the-http-server-explained-c41380307917) 31 | 32 | [What is Node? | Codecademy](https://www.codecademy.com/articles/what-is-node) 33 | 34 | - The frontend code which would interact with the user. 35 | 36 | **Why Separate backend and frontend code?** 37 | 38 | For a better understanding of why backend and frontend should necessarily be well-separated, read the below article. 39 | 40 | [](https://www.forbes.com/sites/forbestechcouncil/2018/07/19/seven-reasons-why-a-websites-front-end-and-back-end-should-be-kept-separate/#2088321a4fca) 41 | 42 | # APIs 43 | 44 | So this week you are going to get started with using API endpoints. For basic knowledge of APIs, as to what basically is an API and what is it's purpose, take a look at the following video. 45 | 46 |
47 | 48 |
49 | 50 | For apps of all shapes and sizes (mobile app, web app, IoT, desktop app) they need a well-defined **Application Programming _Interface_ (API)** to abstract away the business logic of backend and to cater to any client supporting only HTTP. 51 | 52 | Now that you know what an API actually is, the next stage is to learn how can we use APIs and what are the ways to interact with these APIs 53 | 54 | [Working with APIs | The Odin Project](https://www.theodinproject.com/paths/full-stack-javascript/courses/javascript/lessons/working-with-apis) 55 | 56 | Due to security concerns browsers implement a security policy called as CORS which can surely pop up as error many times. So it's important to understand what is CORS or Cross Origin Resource Sharing 57 | 58 | [Cross-Origin Resource Sharing (CORS) - HTTP | MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) 59 | 60 | We'll cover the most popular pattern of HTTP APIs, the so-called RESTful APIs next week! However for a brief intro, here you go 61 | 62 | [Understanding And Using REST APIs - Smashing Magazine](https://www.smashingmagazine.com/2018/01/understanding-using-rest-api/) 63 | 64 | --- 65 | 66 | So much for the conceptual part, let's get started with the practical knowledge! 67 | 68 | # Using REST APIs for handling data over internet 69 | 70 | ## JSON and Serialization 71 | 72 | [https://flutter.dev/docs/development/data-and-backend/json](https://flutter.dev/docs/development/data-and-backend/json) 73 | 74 | ## Implementing REST APIs in Flutter 75 | 76 | [Parse JSON in the background](https://flutter.dev/docs/cookbook/networking/background-parsing) 77 | 78 | [https://www.geeksforgeeks.org/implementing-rest-api-in-flutter/](https://www.geeksforgeeks.org/implementing-rest-api-in-flutter/) 79 | 80 |
81 | 82 |
83 | 84 | # Assignment 85 | 86 | In the previous week, you guys got to learn about how to store data locally on your Android Device. This week tasks will be an extension of the previous TODO List App. 87 | 88 | Enable your previously made (or you can start from scratch) TODO maker App to store and retrieve data to/from provided REST APIs. This means you will have the ability to have the same data on different devices on which your app is installed. 89 | 90 | # Challenge and Submission 91 | 92 | This Blog is a part of [CSoC'21 Dev Frontend](/blog/csoc21-frontend). 93 | 94 | Remember, deadline for this task is **July 2nd, 2021 23:59.** 95 | 96 | So much for learning, here is your next Assignment 97 | 98 | [COPS-IITBHU/csoc-2021-task-3](https://github.com/COPS-IITBHU/csoc-2021-task-3) 99 | 100 | All the details of the task are provided in the README.md file go through it. 101 | 102 | Just like last task you have to create your own repo and then make a PR in above repo to add your entry into `[Flutter.md](http://flutter.md)` with **apk link and repo link only** 103 | -------------------------------------------------------------------------------- /components/Particles.vue: -------------------------------------------------------------------------------- 1 | 23 | 253 | --------------------------------------------------------------------------------