Giter Club home page Giter Club logo

c4gt_22's Introduction

Code for GovTech

Code for GovTech (C4GT) Open Source Program



πŸ“Œ β€œWe believe open source is a public good and across every industry, we have a responsibility to come together to improve and support the security of open-source software we all depend on.”.😍😍 Code for GovTech (C4GT).

C4GT has been conceptualised as a summer coding program to create a community that can build and contribute to global digital public goods.

πŸ“Œ An opportunity for 3rd/4th year engineering students from Tier 1/2 campuses in India to experience the GovTech space.

πŸ“Œ Organized annually over 3 months (mid May-mid Aug), anchored by Samagra with support from partners.

πŸ“Œ There will be a set of GovTech problem statements every year for the participants to work on.

πŸ“Œ Shortlisted participants will receive mentorship of leading practitioners in GovTech over 3 months.

This repository is created to hold every documentation generated during C4GT.This website is built using Docusaurus 2, a modern static website generator.You Can ( Visit πŸš€ )

If you have any queries or any suggestions then reach out to us at Mail.

In order to make a hassle-free environment, I implore you all (while contributing) to follow the instructions mentioned below! Happy Submissions πŸ™‚


Projects

BUILDING AN OPENSOURCE GOVERNMENT OPERATING SYSTEM

Project Name Description Mentors Assigned
UCI Web Channel UCI is an open source platform that enables exactly this - a configurable platform to enable personalised chatbot communication across channels such as WhatsApp, Telegram, SMS, email and more. With UCI you can plugin any federated set of users, any micro experience generating transformers and any distribution channel adapters. Shruti&Chakshu
Admin for Sunbird RC Sunbird RC is an open-source software framework for rapidly building electronic registries, enable attestation capabilities, and build verifiable credentialing with minimal effort. X-Admin is an open-source, low-code framework to create internal admin tools for governance use cases. Shruti&Chakshu
UCI Signal Integration UCI is an open source platform that enables exactly this - a configurable platform to enable personalised chatbot communication across channels such as WhatsApp, Telegram, SMS, email and more. With UCI you can plugin any federated set of users, any micro experience generating transformers and any distribution channel adapters. Shruti&Chakshu
Centralised Access Control OAuth2 Proxy is a reverse proxy and static file server that provides authentication using Providers (Google, GitHub, and others) to validate accounts by email, domain or group. This enables the creation of stateless microservices that can be verified through a network layer. The goal is to add FusionAuth as a provider that will enable all GovTech products to not include authentication-related code inside microservices, enabling the creation and management of ACL outside of a microservice in a reusable way. Chakshu
Competency Passbook A competency ledger on a private blockchain network of schools for awarding badges and certificates to students can remain decentralised in the private blockchain network of schools and will always be one source of truth for authenticity. Bharat
Low-code Admin Console X-Admin an open-source framework to create internal admin tools for governance use cases. Bharat
Workflow Management The aim of this project is to enable GovTech workflows such as If This Then That (IFTTT), Escalations and Alerts to be configured in a reusable manner and run through a combination of open source products - n8n (workflow builder) and temporal (runner). Ashish
Machine Learning Platform While there is a lot of data, it’s not easy to find people who can use that to good effect. The aim of this project is to build a platform that can be used by anyone to train models from these datasets, experiment between different models, deploy the better performing one and monitor the performance in production. Ashish
URL Shortener (YAUS) YAUS is an open-source service for generating shortened URLs. BACHI
Doc Generator Doc generator is a plugin-based service that will help in generating reports, docs, pdfs, from various data sources and in any required format and layout. The Design Doc can be found here. BACHI
Shiksha Postgres Adapter This project aims to create a reference adapter which can interact with a Postgres database. This can be given as a reference implementation to deployers who may not have an existing backend.The project will involve creating a new adapter in Shiksha that uses Postgres as a backend. The schemas in Postgres can mimic the schemas from the Shiksha specification to make the implementation of the adapter simple. Ashwin
Shiksha CMS and Announcements Module As Shiksha starts getting deployed, apart from the core functionalities like worksheets and attendance, there would be non-functional requirements like creating landing pages, welcome screens and content pages. Content pages would be useful to show information about the sponsoring ministry / authority, help and FAQ pages. Deployers will need to be able to create such content pages and also announcements (eg show announcements about events or updates).The project will allow 2 areas:Manage announcements and Manage content pages Ashwin&Arun
Shiksha Frontend Restructuring The aim of Shiksha is to make highly configurable modules which can be embed and extend easily by developers in any of their application and used standalone by providing data points to it. Ashwin&Arun
Shiksha Design System The aim of Shiksha is to make highly configurable modules which can be embed and extend easily by developers in any of their application and used standalone by providing data points to it. Ashwin&Arun
Sunbird QUML Player Sunbird inQuiry Sunbird inQuiry is a building block, open sourced under MIT license, that enables setting up of question banks that can contain questions and question sets for various use cases such as practice, assessment, quiz, worksheet and many more. Kartheek Palla

πŸ‘¨β€πŸ’» Tech Stack:

RUBY SAAS Markdown Bootstrap MySQL Bootstrap React Python JavaScript Angular.js NodeJS TypeScript AmazonDynamoDB MongoDB SQLite TensorFlow Git



πŸ“Œ Contributing Guidelines

Basics of Git and GitHub

Git & GitHub

Before we proceed, it's better to know the difference between Git and Github. Git is a version control system (VCS) that allows us to keep track of the history of our source code , whereas GitHub is a service that hosts Git projects.

We assume you have created an account on Github and installed Git on your System.

Now enter your name and E-mail (used on Github) address in Git, by using following command.

$ git config --global user.name "YOUR NAME"
$ git config --global user.email "YOUR EMAIL ADDRESS"

This is an important step to mark your commits to your name and email.


Fork a project

You can make a copy of the project to your account. This process is called forking a project to your Github account. On Upper right side of project page on Github, you can see -

Click on fork to create a copy of project to your account. This creates a separate copy for you to work on.

Clone the forked project

You have forked the project you want to contribute to your github account. To get this project on your development machine we use clone command of git.

$ git clone https://github.com/Code4GovTech/C4GT.git

Now you have the project on your local machine.


Add a remote (upstream) to original project repository

Remote means the remote location of project on Github. By cloning, we have a remote called origin which points to your forked repository. Now we will add a remote to the original repository from where we had forked.

$ cd <your-forked-project-folder>
$ git remote add upstream https://github.com/Code4GovTech/C4GT

You will see the benefits of adding remote later.


Synchronizing your fork

Open Source projects have a number of contributors who can push code anytime. So it is necessary to make your forked copy equal with the original repository. The remote added above called Upstream helps in this.

$ git checkout main
$ git fetch upstream
$ git merge upstream/main
$ git push origin main

The last command pushes the latest code to your forked repository on Github. The origin is the remote pointing to your forked repository on github.


Create a new branch for a feature or bugfix

Usually, all repositories have a main branch that is regarded to be stable, and any new features should be developed on a separate branch before being merged into the main branch. As a result, we should establish a new branch for our feature or bugfix and go to work on the issue.

$ git checkout -b <feature-branch>

This will create a new branch out of master branch. Now start working on the problem and commit your changes.

$ git add --all
$ git commit -m "<commit message>"

The first command adds all the files or you can add specific files by removing -a and adding the file names. The second command gives a message to your changes so you can know in future what changes this commit makes. If you are solving an issue on original repository, you should add the issue number like #35 to your commit message. This will show the reference to commits in the issue.


Push code and create a pull request

You now have a new branch containing the modifications you want in the project you forked. Now, push your new branch to your remote github fork.

$ git push origin <feature-branch>

Now you are ready to help the project by opening a pull request means you now tell the project managers to add the feature or bug fix to original repository. You can open a pull request by clicking on green icon -

Remember your upstream base branch should be main and source should be your feature branch. Click on create pull request and add a name to your pull request. You can also describe your feature.

Congratulations! You've already made your first contribution.πŸ₯³

Good Luck for your journey

Join the Community ⚑

YouTube LinkedIn Gmail  Discord Instagram

forthebadge

LOC Stars Badge Forks Badge GitHub contributors

GitHub license

Β© 2022 Code for GovTech (C4GT) and contributors

This project is licensed under the MIT license.

forthebadge

c4gt_22's People

Contributors

aayushkedia95 avatar abhi99555 avatar amulya-coder avatar ansh-sarkar avatar arshpreets avatar chakshugautam avatar codeakki avatar deepdarshan21 avatar hardik-hi avatar harshil-jani avatar himanshi-2602 avatar janhavilande avatar kanika637 avatar khushbooag4 avatar khyatinarula avatar neelesh2512 avatar rahul101001000 avatar shruti3004 avatar sidtohan avatar the-shivam-garg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

c4gt_22's Issues

discord invite is invalid

Description

Please describe your issue in few words here.

How to reproduce

Describe the bug and list the steps you used when the issue occurred.

Screenshots

If applicable, add screenshots to help explain your problem.

Versions

  • Last commit id on master:
  • Operating System (lsb_release -a):
  • Browser [e.g. chrome, safari]:

Logs

Any logs (if any) generated in

Discuss the Setup/Blog Page on the Site

Description

Currently, On the Site for each of the Projects we have Setup page which is empty for all and I think it may not be needed. If this is the case then Let me know, We can work by Converting the Setup into Blog Page for each Project. And then all of us can actually add our blogs here itself.

image

Upgrading the Readme make it more readable with clear instructions and attractive for the contributors .

Description

Right now the Readme is simple and less professional , It wont cover the program details required for the Beginner contributors to kick start there journey to open source through this initiative. Through this issue i would like to add certain features which contribute to make this project more readable.

Steps followed and expected result

  1. I will redesign the readme by including the statics buttons to show the progress of the project live.
  2. Will instruct the instruction more accurate for the new contributors and the beginners.
  3. will try to give it more attractive look.

Failing Netlify check

Description

The netlify checks in the PR's are failing due to Mixed-Content error. This is due to http and https. I tried finding a way to disable it from the netlify admin but I cannot find anything. I am not so sure whether we could disable that check on our own or not. Here is the similar kind of discussion raised https://answers.netlify.com/t/how-to-disable-specific-checks-for-pull-requests/14568/6 but with time, I think the solution which they gave in link is outdated. I tried with one of my personal project but netlify seems to change a lot from what it is. Maybe someone having the access to C4GT netlify can check for this solution given here. The failing check is really annoying to work with.

UCI Signal Integration

  • After understanding the structure of the Signal server, it can be concluded that there'd be various fields which once we fill, we'll be able to connect an adapter to it.
  • The adapter itself needs to follow the UCI messaging spec as mentioned here.
  • Once the adapter is able to communicate with the UCI arch and also the Signal server, we'll be able to perform a bi-directional communication following some pre-defined rules(as written in the UCI spec).
  • Once the Signal server and the adapter are set up, they both need to be deployed on Samagra servers using Docker.

Here's a flow-diagram of this process :

Untitled Diagram

Overlapping Caption

Description

In the Home page over the Carousel of the cohort member's images , The caption i.e. C4GT - 2022 participants is overlapping with the details of Contributors.

Screenshots

image
image

Versions

  • Last commit id on master: d180233
  • Operating System (lsb_release -a): Ubuntu
  • Browser [e.g. chrome, safari]: Chrome

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.