Skip to content

Clele63/graphql-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GraphQL App — React (TypeScript) + Go (gqlgen + BoltDB)

  • Frontend : React + TypeScript + Apollo Client
  • Backend : Go + gqlgen (GraphQL server)
  • Base de données : BoltDB (base embarquée, sans serveur)

🧱 Architecture générale

client/            → Application React (TypeScript)
server/            → Serveur Go GraphQL
  ├── graph/       → Schéma, resolvers et modèles gqlgen
  ├── db/          → Gestion de BoltDB (ouverture, buckets, utils)
  ├── middlewares/ → Gestion des middlewares (jwt)
  ├── utils/       → Gestion de ressources utiles (jwt, password)
  ├── go.mod       → Déclaration du module
  └── server.go    → Entrée principale du serveur

Le serveur GraphQL expose un unique endpoint :

http://localhost:6000/query

et un GraphQL Playground est disponible sur :

http://localhost:6000/

🚀 Stack technique

Frontend

  • React + Vite + TypeScript
  • Apollo Client pour la communication GraphQL
  • TailwindCSS (optionnel, pour le style rapide)
  • React Router pour la navigation

Backend

  • Go 1.25.0
  • gqlgen pour la génération automatique du serveur GraphQL
  • bbolt (fork officiel de BoltDB) pour la base de données embarqué
  • uuid pour les identifiants uniques
  • net/http pour l’exposition du serveur
  • chi pour le routage avec authentification jwt

⚙️ Installation et lancement

1. Cloner le projet

git clone https://github.com/Clele63/graphql-go.git
cd graphql-go

2. Lancer le conteneur monolithe

docker compose up --build -d

> Le serveur écoute sur http://localhost:6000 ou les ports suivants.

> Le client écoute sur http://localhost:3000 ou les ports suivants.

Structure minimale du backend

server/
│
├── graph/
│   ├── schema.graphqls     # Définition du schéma GraphQL
│   ├── model/              # Types générés
│   ├── resolver.go         # Injection des dépendances
│   ├── mutation_resolver.go
│   └── query_resolver.go
│
├── db/
│   └── db.go               # Initialisation de BoltDB
│
└── server.go                 # Serveur principal

Structure minimale du frontend

frontend/
│
├── src/
│   ├── apollo/
│   │   └── client.ts       # Configuration Apollo Client
│   ├── components/
│   │   └── UserList.tsx    # Exemple de requête GraphQL
│   ├── pages/
│   │   ├── Home.tsx
│   │   └── CreateUser.tsx
│   ├── App.tsx
│   └── main.tsx
│
├── index.html
└── package.json

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published