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 
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
apifolder - Edit the docker-compose.yml file
- For the
SECRET_KEYrunopenssl rand -hex 32in your terminal and put the output in the variable - For
EMAIL_USERandEMAIL_PASSput in the credentials of your gmail email id. - Forward the relevant port for the API server
- For the
- For https server put the
origin.pemandkey.pemcertificates 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.shcomment line 3 and uncomment line 4 and make the necessary changes to the port
- Comment the ssl_context line in the
Setup and running of project (Frontend)
๐ฎ
- Make sure you have nodejs installed on your machine.
- Move into the client directory by doing
cd clientin the root directory of this repository - After getting into the client directory, run
npm installto 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_leaderboardby doingcd app/gcloud_leaderboardin the root directory of this repository - After getting into the gcloud_leaderboard directory, run
flutter pub getto 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 graphsprovider- for state managementhttp- 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