All Projects → monocash → Iban.im

monocash / Iban.im

Licence: apache-2.0
Shorten, create and share memorable links for IBANS

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Iban.im

Stash
An organizer for your porn, written in Go
Stars: ✭ 591 (+885%)
Mutual labels:  graphql, hacktoberfest
Elide
Elide is a Java library that lets you stand up a GraphQL/JSON-API web service with minimal effort.
Stars: ✭ 766 (+1176.67%)
Mutual labels:  graphql, hacktoberfest
Testing Nestjs
A repository to show off to the community methods of testing NestJS including Unit Tests, Integration Tests, E2E Tests, pipes, filters, interceptors, GraphQL, Mongo, TypeORM, and more!
Stars: ✭ 685 (+1041.67%)
Mutual labels:  graphql, hacktoberfest
Graphql Engine
Blazing fast, instant realtime GraphQL APIs on your DB with fine grained access control, also trigger webhooks on database events.
Stars: ✭ 24,845 (+41308.33%)
Mutual labels:  graphql, hacktoberfest
Siler
⚡ Flat-files and plain-old PHP functions rockin'on as a set of general purpose high-level abstractions.
Stars: ✭ 1,056 (+1660%)
Mutual labels:  graphql, hacktoberfest
Cookiecutter Django Vue
Cookiecutter Django Vue is a template for Django-Vue projects.
Stars: ✭ 462 (+670%)
Mutual labels:  graphql, hacktoberfest
Mercurius
Implement GraphQL servers and gateways with Fastify
Stars: ✭ 704 (+1073.33%)
Mutual labels:  graphql, hacktoberfest
Wp Graphql Acf
WPGraphQL for Advanced Custom Fields
Stars: ✭ 358 (+496.67%)
Mutual labels:  graphql, hacktoberfest
Sql To Graphql Schema Generator
⚛️ Generate GraphQL Scheme Online From SQL Query - https://sql-to-graphql.now.sh/
Stars: ✭ 32 (-46.67%)
Mutual labels:  graphql, hacktoberfest
Strawberry
A new GraphQL library for Python 🍓
Stars: ✭ 891 (+1385%)
Mutual labels:  graphql, hacktoberfest
Graphqlmap
GraphQLmap is a scripting engine to interact with a graphql endpoint for pentesting purposes.
Stars: ✭ 434 (+623.33%)
Mutual labels:  graphql, hacktoberfest
Erxes Api
API for erxes
Stars: ✭ 57 (-5%)
Mutual labels:  graphql, hacktoberfest
Parse Server
API server module for Node/Express
Stars: ✭ 19,165 (+31841.67%)
Mutual labels:  graphql, hacktoberfest
Learn Graphql
Real world GraphQL tutorials for frontend developers with deadlines!
Stars: ✭ 586 (+876.67%)
Mutual labels:  graphql, hacktoberfest
Villus
🏎 A tiny and fast GraphQL client for Vue.js
Stars: ✭ 378 (+530%)
Mutual labels:  graphql, hacktoberfest
Offix
GraphQL Offline Client and Server
Stars: ✭ 694 (+1056.67%)
Mutual labels:  graphql, hacktoberfest
Askql
AskQL is a query language that can express any data request
Stars: ✭ 352 (+486.67%)
Mutual labels:  graphql, hacktoberfest
Open Sauced
🍕 This is a project to identify your next open source contribution.
Stars: ✭ 352 (+486.67%)
Mutual labels:  graphql, hacktoberfest
Schemathesis
A modern API testing tool for web applications built with Open API and GraphQL specifications.
Stars: ✭ 768 (+1180%)
Mutual labels:  graphql, hacktoberfest
Umbraco Graphql
An implementation of GraphQL for Umbraco 8 using GraphQL for .NET.
Stars: ✭ 52 (-13.33%)
Mutual labels:  graphql, hacktoberfest

IBAN.im

Shorten, create and share memorable links for IBANS

Purpose

Shorten IBAN numbers with url such as :

  • iban.im/user/alias
  • iban.im/fakturk/garanti

Stacks

Open in Gitpod

Features

  • [x] New users should Sign Up & Sign In
  • [x] Change a Password of user
  • [x] Change a Profile of user
  • [ ] Delete a Profile of user
  • [x] Get Profile of user
  • [x] New IBAN add for user
  • [x] Update IBAN for user
  • [x] Delete IBAN for user
  • [x] Get IBAN's of user
  • [x] When adding new IBAN check if is it exist with same name (we can add with different names)
  • [x] A user should add iban to only itself

How to Run

Initialize DB

  1. Create a database
postgres=# CREATE DATABASE ibanim;
  1. Create a user as owner of database
postgres=# CREATE USER ibanim WITH ENCRYPTED PASSWORD 'ibanim';

postgres=# ALTER DATABASE ibanim OWNER TO ibanim;
  1. Grant all privileges to user for the database
postgres=# GRANT ALL PRIVILEGES ON DATABASE ibanim TO ibanim;
  1. Configure the db in db.go
// ConnectDB : connecting DB
func ConnectDB() (*DB, error) {
	db, err := gorm.Open("postgres", "host=localhost port=5432 user=ibanim dbname=ibanim password=ibanim sslmode=disable")

	if err != nil {
		panic(err)
	}

	return &DB{db}, nil
}

or with Docker

host address should be edited to host.docker.internal to connect a host interface.

// ConnectDB : connecting DB
func ConnectDB() (*DB, error) {
	db, err := gorm.Open("postgres", "host=host.docker.internal port=5432 user=ibanim dbname=ibanim password=ibanim sslmode=disable")

	if err != nil {
		panic(err)
	}

	return &DB{db}, nil
}

Initial Migration

$ go run ./migrations/init.go

or with Docker

$ docker build -t ibanim .
$ docker run --rm ibanim migrate

This will generate the users table in the database as per the User Model declared in ./model/user.go

Run the server

$ go run server.go

or with Docker

$ docker run --rm -d -p 8080:8080 ibanim

GraphQL Playground

Connect to http://localhost:8080

Authentication : JWT

You need to set the Http request headers Authorization: {JWT_token}

Usage

Sign Up

mutation {
  signUp(
    email: "[email protected]"
    password: "12345678"
    firstName: "graphql"
    lastName: "go"
    handle:"test"
  ) {
    ok
    error
    user {
      id
      handle
      email
      firstName
      lastName
      bio
      avatar
      createdAt
      updatedAt
    }
  }
}

Sign In

mutation {
  signIn(email: "[email protected]", password: "12345678") {
    ok
    error
    token
  }
}

Change a Password

mutation {
  changePassword(password: "87654321") {
    ok
    error
    user {
      id
      handle
      email
      firstName
      lastName
      bio
      avatar
      createdAt
      updatedAt
    }
  }
}

Change a Profile

mutation {
  changeProfile(bio: "Go developer", avatar: "go-developer.png") {
    ok
    error
    user {
      id
      handle
      email
      firstName
      lastName
      bio
      avatar
      createdAt
      updatedAt
    }
  }
}

Get my profile

query {
  getMyProfile {
    ok
    error
    user {
      id
      handle
      email
      firstName
      lastName
      bio
      avatar
      createdAt
      updatedAt
    }
  }
}

Add new Iban

mutation {
  ibanNew(text:"TR320010009999901234567890",password:"fatih",handle:"fakturk"){
    ok
    error
    iban{
      id
      handle
      text
      password
      createdAt
      updatedAt
    }
  }
}

Update Iban

mutation {
  ibanUpdate(text:"TR420010009999901234567891",password:"fatih",handle:"garanti"){
    ok
    error
    iban{
      id
      handle
      text
      password
      createdAt
      updatedAt
    }
  }
}

Get User IBANs

query {
  getMyIbans {
    ok
    error
    iban {
       id
      handle
      text
      password
      createdAt
      updatedAt
      ownerId
    }
  }
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].