├── firestore.indexes.json ├── .firebaserc ├── public ├── favicon.ico └── index.html ├── src ├── assets │ ├── logo.png │ ├── home-bg.jpg │ ├── arrow-204-32.png │ ├── google-icon.png │ ├── fonts │ │ └── StargazeStencil.otf │ ├── main.css │ ├── register.svg │ └── discord.svg ├── store │ └── index.js ├── composables │ ├── useLoginCollection.js │ ├── getUser.js │ ├── useLogout.js │ ├── addUsers.js │ ├── useCollection.js │ ├── useLogin.js │ ├── useSignInGoogle.js │ ├── deleteDocuments.js │ ├── useSignup.js │ └── getCollection.js ├── main.js ├── firebase │ └── config.js ├── App.vue ├── views │ ├── Auth.vue │ ├── SubmitPR.vue │ ├── Dashboard.vue │ └── Home.vue ├── components │ ├── Confetti.vue │ ├── Nav.vue │ ├── Login.vue │ ├── Signup.vue │ └── PreLoader.vue └── router │ └── index.js ├── babel.config.js ├── storage.rules ├── firestore.rules ├── .gitignore ├── README.md ├── firebase.json └── package.json /firestore.indexes.json: -------------------------------------------------------------------------------- 1 | { 2 | "indexes": [], 3 | "fieldOverrides": [] 4 | } 5 | -------------------------------------------------------------------------------- /.firebaserc: -------------------------------------------------------------------------------- 1 | { 2 | "projects": { 3 | "default": "aperta-fons-bf53f" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitByte-TPC/Aperta-Fons/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitByte-TPC/Aperta-Fons/HEAD/src/assets/logo.png -------------------------------------------------------------------------------- /src/assets/home-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitByte-TPC/Aperta-Fons/HEAD/src/assets/home-bg.jpg -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /src/assets/arrow-204-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitByte-TPC/Aperta-Fons/HEAD/src/assets/arrow-204-32.png -------------------------------------------------------------------------------- /src/assets/google-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitByte-TPC/Aperta-Fons/HEAD/src/assets/google-icon.png -------------------------------------------------------------------------------- /src/assets/fonts/StargazeStencil.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BitByte-TPC/Aperta-Fons/HEAD/src/assets/fonts/StargazeStencil.otf -------------------------------------------------------------------------------- /storage.rules: -------------------------------------------------------------------------------- 1 | rules_version = '2'; 2 | service firebase.storage { 3 | match /b/{bucket}/o { 4 | match /{allPaths=**} { 5 | allow read, write: if request.auth!=null; 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import { createStore } from 'vuex' 2 | 3 | export default createStore({ 4 | state: { 5 | }, 6 | mutations: { 7 | }, 8 | actions: { 9 | }, 10 | modules: { 11 | } 12 | }) 13 | -------------------------------------------------------------------------------- /firestore.rules: -------------------------------------------------------------------------------- 1 | rules_version = '2'; 2 | service cloud.firestore { 3 | match /databases/{database}/documents { 4 | match /{document=**} { 5 | allow read, write: if 6 | request.time < timestamp.date(2025, 10, 14); 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /src/composables/useLoginCollection.js: -------------------------------------------------------------------------------- 1 | import {projectFirestore} from "@/firebase/config"; 2 | 3 | const useLoginCollection = async (id) => { 4 | return projectFirestore.collection("admins").get().then(t => { 5 | return t.docs.map(doc => doc.data()) 6 | }) 7 | } 8 | 9 | export default useLoginCollection -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | package-lock.json 2 | .DS_Store 3 | node_modules 4 | /dist 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # aperta-fons 2 | 3 | ## Project setup 4 | ``` 5 | npm install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | npm run serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | npm run build 16 | ``` 17 | 18 | ### Customize configuration 19 | See [Configuration Reference](https://cli.vuejs.org/config/). 20 | -------------------------------------------------------------------------------- /src/composables/getUser.js: -------------------------------------------------------------------------------- 1 | import { ref } from "vue"; 2 | import { projectAuth } from "../firebase/config"; 3 | 4 | // refs 5 | const user = ref(projectAuth.currentUser); 6 | 7 | // auth changes 8 | projectAuth.onAuthStateChanged((_user) => { 9 | console.log("User state change. Current user is:", _user); 10 | user.value = _user; 11 | }); 12 | 13 | const getUser = () => { 14 | return { user }; 15 | }; 16 | 17 | export default getUser; 18 | -------------------------------------------------------------------------------- /src/composables/useLogout.js: -------------------------------------------------------------------------------- 1 | import {ref} from "vue"; 2 | import {projectAuth} from "@/firebase/config"; 3 | 4 | const error = ref(null) 5 | 6 | const logout = async () => { 7 | error.value = null 8 | try { 9 | await projectAuth.signOut() 10 | } catch (err) { 11 | console.log(err) 12 | error.value = err.message 13 | } 14 | } 15 | 16 | const useLogout = () => { 17 | return {error, logout} 18 | } 19 | 20 | export default useLogout -------------------------------------------------------------------------------- /firebase.json: -------------------------------------------------------------------------------- 1 | { 2 | "firestore": { 3 | "rules": "firestore.rules", 4 | "indexes": "firestore.indexes.json" 5 | }, 6 | "hosting": { 7 | "public": "dist", 8 | "ignore": [ 9 | "firebase.json", 10 | "**/.*", 11 | "**/node_modules/**" 12 | ], 13 | "rewrites": [ 14 | { 15 | "source": "**", 16 | "destination": "/index.html" 17 | } 18 | ] 19 | }, 20 | "storage": { 21 | "rules": "storage.rules" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import { createApp } from "vue"; 2 | import App from "./App.vue"; 3 | import router from "./router"; 4 | import store from "./store"; 5 | import "./assets/main.css"; 6 | import 'bootstrap/dist/css/bootstrap.min.css' 7 | import 'jquery/src/jquery.js' 8 | import 'bootstrap/dist/js/bootstrap.min.js' 9 | 10 | import {projectAuth} from "@/firebase/config"; 11 | let app 12 | 13 | projectAuth.onAuthStateChanged(() => { 14 | if(!app) { 15 | app = createApp(App).use(router).use(store).mount('#app') 16 | } 17 | }) -------------------------------------------------------------------------------- /src/composables/addUsers.js: -------------------------------------------------------------------------------- 1 | import {ref} from "vue"; 2 | import {projectFirestore} from "@/firebase/config"; 3 | 4 | const addUsers = (collection) => { 5 | const error = ref(null) 6 | 7 | const addDoc = async (user) => { 8 | error.value = null 9 | 10 | try { 11 | await projectFirestore.collection(collection).doc(user.uid).set(user) 12 | } catch (err) { 13 | console.log(err.message) 14 | error.value = "Could not send message!!" 15 | } 16 | } 17 | 18 | return {error, addDoc} 19 | } 20 | 21 | export default addUsers -------------------------------------------------------------------------------- /src/composables/useCollection.js: -------------------------------------------------------------------------------- 1 | import {ref} from "vue"; 2 | import {projectFirestore} from "@/firebase/config"; 3 | 4 | const useCollection = (collection) => { 5 | const error = ref(null) 6 | 7 | const addDoc = async (doc) => { 8 | error.value = null 9 | 10 | try { 11 | await projectFirestore.collection(collection).add(doc) 12 | } catch (err) { 13 | console.log(err.message) 14 | error.value = "Could not send message!!" 15 | } 16 | } 17 | 18 | return {error, addDoc} 19 | } 20 | 21 | export default useCollection -------------------------------------------------------------------------------- /src/composables/useLogin.js: -------------------------------------------------------------------------------- 1 | import {ref} from "vue"; 2 | import {projectAuth} from "@/firebase/config"; 3 | 4 | const error = ref(null) 5 | 6 | const login = async (email, password) => { 7 | error.value = null 8 | try { 9 | const res = await projectAuth.signInWithEmailAndPassword(email, password) 10 | error.value = null 11 | return res 12 | } catch (err) { 13 | console.log(err.message) 14 | error.value = "Incorrect login credentials" 15 | } 16 | } 17 | 18 | const useLogin = () => { 19 | return {error, login} 20 | } 21 | 22 | export default useLogin -------------------------------------------------------------------------------- /src/assets/main.css: -------------------------------------------------------------------------------- 1 | #app { 2 | width: 100vw; 3 | margin: 0; 4 | padding: 0; 5 | } 6 | 7 | body { 8 | margin: 0; 9 | padding: 0; 10 | overflow-x: hidden; 11 | } 12 | 13 | html { 14 | scroll-behavior: smooth; 15 | } 16 | 17 | ::-webkit-scrollbar { 18 | width: 20px; 19 | } 20 | 21 | ::-webkit-scrollbar-track { 22 | background-color: black; 23 | } 24 | 25 | ::-webkit-scrollbar-thumb { 26 | background-color: #3770ff; 27 | border-radius: 20px; 28 | border: 6px solid transparent; 29 | background-clip: content-box; 30 | } 31 | 32 | ::-webkit-scrollbar-thumb:hover { 33 | background-color: #1e45a9; 34 | } -------------------------------------------------------------------------------- /src/assets/register.svg: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 |Don’t have an account? Sign up instead
14 |Already have an account? Sign in instead
15 |Aperta Fons
13 |A Month Long Open Source Challenge
14 |Presented by The Programming Club, IIITDMJ
15 | 29 |The event Starts at .... !!!
31 |The event has ended!!! ,Do visit the Leaderboard!!!
44 |The event is live && will be ending on ....!!!
49 |70 | Aperta Fons is a 71 | month-long open source event, that is 72 | aimed at encouraging you towards the world of open-source and taking 73 | the first step towards licentious open-source programs like 74 | Outreachy, Google Summer of Code, MLH, 75 | etc. This event is managed by BitByte, The Programming Club and Google 76 | DSC of IIITDM Jabalpur. 77 |
78 |79 | This event is aimed at matching you with open source, free software, 80 | and technology-related organizations to write code and become part of 81 | these communities. The organizations provide mentors who act as guides 82 | through the entire process, from learning about the community to 83 | contributing code. 84 |
85 |
86 | The goals of our Event are to:
87 |
88 | - Inspire yoNadi ayyindhi
89 | 9:58 pmu to begin participating in
90 | open source development.
91 |
92 | - Identifying open-source projects and
93 | bring in new developers.
94 |
95 | - Provide you the opportunity to do
96 | work and give you industry experience.
97 |
98 | - Give you more exposure to real-world
99 | software development
100 |
116 | • TOP CONTRIBUTORS can win 117 | exclusive club t-shirts. 118 |
119 |120 | • 121 | EVERY CONTRIBUTOR who has got at least 2 122 | easy-level and 1 medium-level PR merged to repositories with 100+⭐ 123 | will get exclusive club stickers. 124 |
125 |126 | NOT ENOUGH? 127 |
128 |129 | • Top participants will get 130 | Exclusive swags and merchandise 133 | for their exceptional performance in the event. 134 |
135 |FAQS
144 |