30 Days of google cloud leaderboard website

Overview

cloud

30 Days of Cloud Leaderboard

This is a leaderboard for the students of Thapar, Patiala who are participating in the 2021 30 days of Google Cloud Platform Challenge

Overview

Here is the website : https://30daysofgcp.dsctiet.tech/

The project consists of a single page site and an app having a leaderboard table with search functionality to easily find a particular participant by name, and a couple of graphs showing the general point trends. The graphs have been made using react-chartjs-2 npm package in the web version and syncfusion_flutter_charts in the app. The leaderboard encourages the participants to proceed with their challenge by giving the top scorer(s) a crown against their ranks. This has been done to promote healthy competition among the participants and appreciate the enthusiasm of those who finished the challenge before time!


We follow a systematic Git Workflow -

  • Create a fork of this repo.
  • Clone your fork of your repo on your pc.
  • Add Upstream to your clone
  • Every change that you do, it has to be on a branch. Commits on master would directly be closed.
  • Make sure that before you create a new branch for new changes,syncing with upstream is neccesary.

Setup and running of project (Backend) ๐Ÿงฎ

  • Fork the repo and clone it.
  • Go in the repo and go into the api folder
  • Edit the docker-compose.yml file
    • For the SECRET_KEY run openssl rand -hex 32 in your terminal and put the output in the variable
    • For EMAIL_USER and EMAIL_PASS put in the credentials of your gmail email id.
    • Forward the relevant port for the API server
  • For https server put the origin.pem and key.pem certificates in the api folder
  • To run the server run: docker-compose up --build
  • Server will now run at: https:// :
  • To run via http:
    • Comment the ssl_context line in the api/api/app.py
    • In api/api/run.sh comment line 3 and uncomment line 4 and make the necessary changes to the port

Setup and running of project (Frontend) ๐Ÿ”ฎ

  • Make sure you have nodejs installed on your machine.
  • Move into the client directory by doing cd client in the root directory of this repository
  • After getting into the client directory, run npm install to install all the dependencies
  • Start react server with npm start

Runs the app on your localhost.
Open http://localhost:3000 to view it in the browser.

Setup and running of project (App) ๐Ÿ“ฑ

  • Make sure you have Flutter installed on your machine
  • Move into the gcloud_leaderboard by doing cd app/gcloud_leaderboard in the root directory of this repository
  • After getting into the gcloud_leaderboard directory, run flutter pub get to install all the dependencies
  • Run the app on an emulator

Built With โš’

Backend ๐Ÿ“ก

  • Flask - Does the magic of making REST API endpoints
  • SQLAlchemy - Storing the scores and user data in a database
  • Docker - Running the server in a containerised way

Web Application ๐Ÿ–ฅ

  • React - Do you Even Need an introduction to this ? ๐Ÿ˜‚
    • react-chartjs-2 - Simple yet flexible JavaScript charting for designers & developers

Mobile Application ๐Ÿ“ฒ

  • Flutter- Better to write one codebase instead of two ๐Ÿ˜‰
    • syncfusion_flutter_charts - for creating graphs
    • provider - for state management
    • http - for working with REST APIs

Authors โœ๐Ÿป

  • Raghav Sharma - Backend Flask, API and Deployment - raghavTinker
  • Yashvardhan Arora - UI and React Web Application - yash22arora
  • Sidharth Bahl - Flutter Mobile Application - sidB67
Owner
Developer Student Clubs TIET
We believe in the power of Open Source!
Developer Student Clubs TIET
Cleaner script to normalize knock's output EPUBs

clean-epub The excellent knock application by Benton Edmondson outputs EPUBs that seem to be DRM-free. However, if you run the application twice on th

2 Dec 16, 2022
Python Tool to Easily Generate Multiple Documents

Python Tool to Easily Generate Multiple Documents Running the script doesn't require internet Max Generation is set to 10k to avoid lagging/crashing R

2 Apr 27, 2022
Grokking the Object Oriented Design Interview

Grokking the Object Oriented Design Interview

Tusamma Sal Sabil 2.6k Jan 08, 2023
Source Code for 'Practical Python Projects' (video) by Sunil Gupta

Apress Source Code This repository accompanies %Practical Python Projects by Sunil Gupta (Apress, 2021). Download the files as a zip using the green b

Apress 2 Jun 01, 2022
FxBuzzly - Buzzly.art links do not embed in Discord, this fixes them (rudimentarily)

fxBuzzly Buzzly.art links do not embed in Discord, this fixes them (rudimentaril

Dania Rifki 2 Oct 27, 2022
Project documentation with Markdown.

MkDocs Project documentation with Markdown. View the MkDocs documentation. Project release notes. Visit the MkDocs wiki for community resources, inclu

MkDocs 15.6k Jan 02, 2023
JTEX is a command line tool (CLI) for rendering LaTeX documents from jinja-style templates.

JTEX JTEX is a command line tool (CLI) for rendering LaTeX documents from jinja-style templates. This package uses Jinja2 as the template engine with

Curvenote 15 Dec 21, 2022
Count the number of lines of code in a directory, minus the irrelevant stuff

countloc Simple library to count the lines of code in a directory (excluding stuff like node_modules) Simply just run: countloc node_modules args to

Anish 4 Feb 14, 2022
This contains timezone mapping information for when preprocessed from the geonames data

when-data This contains timezone mapping information for when preprocessed from the geonames data. It exists in a separate repository so that one does

Armin Ronacher 2 Dec 07, 2021
A system for Python that generates static type annotations by collecting runtime types

MonkeyType MonkeyType collects runtime types of function arguments and return values, and can automatically generate stub files or even add draft type

Instagram 4.1k Jan 07, 2023
:blue_book: Automatic documentation from sources, for MkDocs.

mkdocstrings Automatic documentation from sources, for MkDocs. Features - Python handler - Requirements - Installation - Quick usage Features Language

1.1k Jan 04, 2023
The mitosheet package, trymito.io, and other public Mito code.

Mito Monorepo Mito is a spreadsheet that lives inside your JupyterLab notebooks. It allows you to edit Pandas dataframes like an Excel file, and gener

Mito 1.4k Dec 31, 2022
100 Days of Code Learning program to keep a habit of coding daily and learn things at your own pace with help from our remote community.

100 Days of Code Learning program to keep a habit of coding daily and learn things at your own pace with help from our remote community.

Git Commit Show by Invide 41 Dec 30, 2022
step by step guide for beginners for getting started with open source

Step-by-Step Guide for beginners for getting started with Open-Source Here The Contribution Begins ๐Ÿ’ป If you are a beginner then this repository is fo

Arpit Jain 66 Jan 03, 2023
The OpenAPI Specification Repository

The OpenAPI Specification The OpenAPI Specification is a community-driven open specification within the OpenAPI Initiative, a Linux Foundation Collabo

OpenAPI Initiative 25.5k Dec 29, 2022
A plugin to introduce a generic API for Decompiler support in GEF

decomp2gef A plugin to introduce a generic API for Decompiler support in GEF. Like GEF, the plugin is battery-included and requires no external depend

Zion 379 Jan 08, 2023
Python-slp - Side Ledger Protocol With Python

Side Ledger Protocol Run python-slp node First install Mongo DB and run the mong

Solar 3 Mar 02, 2022
Hjson for Python

hjson-py Hjson, a user interface for JSON Hjson works with Python 2.5+ and Python 3.3+ The Python implementation of Hjson is based on simplejson. For

Hjson 185 Dec 13, 2022
Python document object mapper (load python object from JSON and vice-versa)

lupin is a Python JSON object mapper lupin is meant to help in serializing python objects to JSON and unserializing JSON data to python objects. Insta

Aurรฉlien Amilin 24 Nov 09, 2022
Pystm32ai - A Python wrapper for the stm32ai command-line tool

PySTM32.AI A python wrapper for the stm32ai command-line tool to analyse deep le

Thibaut Vercueil 5 Jul 28, 2022