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!
- 🔎 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
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
-
Clone the repository
git clone https://github.com/DaveSimoes/programming-languages-graphql-api.git cd programming-languages-graphql-api
-
Install dependencies
npm install
-
Configure environment variables
- Copy
.env.example
to.env
and adjust variables if needed.
- Copy
-
Start the project
npm run dev
-
Access the GraphQL playground
- Open your browser at
/graphql
after starting the server to explore and test queries.
- Open your browser at
query {
languages {
id
name
creator
year
frameworks {
name
type
}
}
}
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



Deploy easily to platforms like Railway, Render, or Vercel (Node.js supported).
Pull requests are welcome! Feel free to open issues, suggest improvements, or add new data to the API.
Distributed under the MIT License.
Built by David De Paiva
LinkedIn 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!