This is a public API designed to provide structured learning paths based on different topics. It helps users explore various resources categorized by subjects, levels, and platforms.
- Provides structured learning paths for topics such as Algorithms, Data Structures, and Web Development, and more!
- Categorizes resources by beginner, intermediate, and advanced levels.
- Supports multiple platforms, including MIT Press, Coursera, Udacity, edX, and Khan Academy.
- Includes metadata like topics covered, duration, and price.
- Implements CORS for cross-origin requests.
- Includes rate limiting to prevent abuse.
- Node.js: JavaScript runtime
- Express.js: Web framework for building APIs
- CORS: Middleware for handling cross-origin requests
- Express-Rate-Limit: Middleware for limiting repeated requests
- TypeScript: Strongly typed JavaScript
- JSON: Data structure format
- Clone the repository:
git clone https://github.com/kinDreno/ol-courseapi.git
- Navigate to the project directory:
cd public-api-learning-paths
- Install dependencies using
pnpm
:pnpm install
- Start the server:
pnpm start
GET /api/topics
Response: Returns a list of all available topics.
GET /api/topics/:name
Response: Returns topic details including available resources.
{
"topics": [
{
"name": "Algorithms",
"category": "Computer Science",
"levels": {
"beginner": [
{
"id": "algorithms-mitpress-001",
"title": "Introduction to Algorithms, third edition",
"type": "Book",
"platform": "MIT Press",
"description": "Introduction to Algorithms uniquely combines rigor and comprehensiveness...",
"link": "https://mitpress.mit.edu/books/introduction-algorithms-third-edition",
"topics-covered": [
"Algorithms", "Data Structures", "Sorting", "Searching"
],
"duration": "1 year",
"price": "Free"
}
]
}
}
]
}
We welcome contributions from the community! To contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name
. - Make your changes and commit:
git commit -m 'Add new feature'
. - Push to the branch:
git push origin feature-name
. - Open a Pull Request.
This project is open-source and available under the MIT License.
Thank you!