An open API service indexing awesome lists of open source software.

https://github.com/davesimoes/programming-languages-graphql-api

A public GraphQL API providing structured data on programming languages, their creators, and related frameworks and tools. Perfect for developers, educators, and anyone exploring modern technology stacks.
https://github.com/davesimoes/programming-languages-graphql-api

Last synced: 11 months ago
JSON representation

A public GraphQL API providing structured data on programming languages, their creators, and related frameworks and tools. Perfect for developers, educators, and anyone exploring modern technology stacks.

Awesome Lists containing this project

README

          

# πŸš€ Programming Languages & Tools GraphQL API

A public GraphQL API providing structured data on programming languages, their creators, and related frameworks and tools. Perfect for developers, educators, and anyone exploring modern technology stacks!

[![Stars](https://img.shields.io/github/stars/DaveSimoes/programming-languages-graphql-api?style=social)](https://github.com/DaveSimoes/programming-languages-graphql-api/stargazers)
[![MIT License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
apollo-playground-queryoriginal

---

## ✨ Features

- πŸ”Ž Query programming languages, creators, release dates, and related frameworks
- πŸ› οΈ Add new languages and frameworks (mutations)
- ⚑ Interactive GraphQL Playground for queries and mutations
- πŸ“š Easily extensible and ready for integration with modern projects

---
## πŸ”Ž Database
This project uses MongoDB as a NoSQL database to store information about programming languages, their creators, related frameworks, and tools.
The connection to MongoDB is established through the Node.js backend, ensuring structured data and efficient queries via GraphQL.

- Connection setup:

To run the project, you need to have MongoDB installed and running.
Configure the following environment variable with the URI to your database:
```
MONGODB_URI=mongodb://localhost:27017/database-name
```

## πŸš€ Getting Started

1. **Clone the repository**
```bash
git clone https://github.com/DaveSimoes/programming-languages-graphql-api.git
cd programming-languages-graphql-api
```
2. **Install dependencies**
```bash
npm install
```
3. **Configure environment variables**
- Copy `.env.example` to `.env` and adjust variables if needed.

4. **Start the project**
```bash
npm run dev
```

5. **Access the GraphQL playground**
- Open your browser at `/graphql` after starting the server to explore and test queries.

---

## πŸ“ Example Query

```graphql
query {
languages {
id
name
creator
year
frameworks {
name
type
}
}
}
```

### Example Mutation

```graphql
mutation {
addLanguage(
name: "TypeScript"
creator: "Anders Hejlsberg"
year: 2012
website: "https://www.typescriptlang.org/"
) {
id
name
}
}
```

---
## πŸ› οΈScreenshot of Apollo GraphQL studio - Hands-on application of examples on the Apollo GraphQL server
apollo-playground
apollo-playground-framework
apollo-playground-queryoriginal

## 🌍 Deploy in One Click

Deploy easily to platforms like [Railway](https://railway.app/), [Render](https://render.com/), or [Vercel](https://vercel.com/) (Node.js supported).

---

## 🀝 Contributing

Pull requests are welcome! Feel free to open issues, suggest improvements, or add new data to the API.

---

## πŸ“„ License

Distributed under the MIT License.

---

> Built by **David De Paiva**
> [LinkedIn](https://www.linkedin.com/in/dspaivadev/)
> _Passionate about technology and building solutions that connect people and knowledge._

---
If you find this project useful, please consider giving it a ⭐ star to support the repository and help others discover it!