Git Product home page Git Product logo

yotas's Introduction

Yotas

Oss's reward system

Yotas is an open source engagement awarding system. Open source contributors across the organisation are awarded for the effort and energy they put into the platform. Each interaction they have on GitHub will give them a certain number of Yotas which can be traded for goodies, mentoring, ebooks (etc...) in an OSS shop.

Why?

know more about yotas

How to run

TODO

How to run the api doc

move to the docs/api/ folder and run:

$> yarn install
$> yarn start

License

GNU GPLv3

yotas's People

Contributors

abdounasser202 avatar dipandaaser avatar elhmn avatar gtindo avatar sanix-darker avatar

Stargazers

 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

yotas's Issues

Setup frontend project

Summary

Initialize project structure for the frontend inside the frontend folder at the root of the project.

It must be a React application with the followings with the following requirements:

  • Typescript support
  • Sass support
  • Code style and formatting
  • Router
  • Form library
  • HTTP Client
  • Data fetching library

Setup frontend tests

Setup frontend test framework and a Github Action workflow that runs these tests

Endpoints for authentication, articles, order management and organisation creation

  • Github authentication (/auth)
  • View account informations (/user/{userId})
  • Deactivate an account (/user/{userId}/deactivate
  • Create an organisation (POST
    /organisations)
  • List organisations (GET /organisations)
  • View an organisation shop (GET /articles)
  • List articles (GET /articles)
  • View details of an article (GET /articles/{articleId})
  • #54
  • #55
  • Create/Update an article (Admin) (/articles && /articles/{articleId})
  • #56
  • #57

Linter error

What

When trying to run the linter : make lint

Screenshot

Screenshot from 2021-08-22 18-51-43

Setup integration tests for the api

Add integration tests for the api and Github Action workflow that will run this integration tests on commit push.

The integration tests should spin up using docker-compose an api and a postgres container that will be populated with some fixtures data, then used to run the integration tests. To run integration tests we can use postman collection with the newman cli, or use a different option that propose a more readable and reviewable test description config format.

Create Models

After creating migrations, we will set up models directly in the project that will map to the login in the database !

Organization creation and Link to Github accounts

Users want to create an Organization on Yotas

After authentication, any user can create an organization on Yotas.

Here is the flow of that process:
Flow

Here are fields required for creation:

  • Organization name
  • Public description of the org

After the organization creation, the system sends an email to the owner

Notices:

  • During the process, if the user does not link Yotas app to any account the system must not save anything
  • If an account is already linked to a Yotas organization, it will stop the process and notify the user on a screen

Create Migrations

We need to set up a bunch of SQL queries for migrations to create and set the database of yotas !

Specifications of the API

  • Setup Docusaurus Project
  • Setup Redoc inside Docusaurus
  • Define Models
  • API Spec for User management and authentication
  • API Specs for organisation Creation
  • API Specs for shop management, and orders
  • API Specs for Operations and Wallet
  • API Specs for Organisation Management
  • API Specs for File Upload

Add Yotas-WebHook to the project

Actually a project is allready working for this task !
The main goal is to connect the source code of in this project, then transform it to a module !

CI/CD pipelines setup

CI

  • Linter frontend/backend
  • Setup and Run integration test

CD

  • Backend: Run serverless container (Explore deployment on cloud run)
  • Frontend: Container deployment
  • Set up staging and prod environment for the backend and frontend

Setup local env

Setup golangci code quality linting

We would like to enforce certain rules around how we generally write go code.

To completed this issue should implements the following features :

  • Setup golangci linter
  • Setup yotas api linting GH Action workflow

Users authentication and account creation

New users need to create an account, and existing users want to log in.

Given the fact that all users of Yotas should come from GitHub, it is easier for them to use their Github account to log in.

Here Is the flow of the Login:
sketch

If It is the first time the user clicks on the Sign In button and does not Have a Yotas account we should save his Token and personal data.

Here is the list of information about the user that is important for Yotas:

  • Github Id
  • Email
  • Github username
  • Name

After the first Sign In and account creation, Yotas send a welcome email to the user.

Add conventional commit github action check

For our commit message to be consistent on how they are formatted, we would like to add a Conventional commit github action or simply enable the semantic pull request app to our repository

Project Setup

Define the base structure of the project, it is a mono repo.

It should contain:

  • React app for the frontend
  • Golang app for the backend
  • Automations files

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.