Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
The Purdue.io API is completely open source - we encourage you to contribute to help build Purdue.io into something awesome! Start discussions if you're unsure of where you can help, or share ideas for what we can add!
Pull requests will be accepted / merged on the dev branch only. The dev branch will automatically deploy to http://api-dev.purdue.io , and when merged into master for release, will automatically deploy to http://api.purdue.io.
Developers: Getting Started
- Install Visual Studio 2017
- Clone the repository by selecting "clone" in the "Local Git Repositories" section of Team Explorer and pasting the clone URL
- Switch to the dev branch by selecting "New Branch" from the Branches section of team explorer and selecting "origin/dev" from the drop-down menu.
- Select the Home button in Team Explorer and open the Purdue.io API Visual Studio Solution.
This repository contains 4 separate projects that make up the Purdue.io API.
A Purdue.io API
This project is the ASP.Net Web API project that hosts the actual API. This includes exposing the database via OData, and exposing RESTful API methods.
This is a class library of methods that provide access to raw myPurdue data.
CatalogApi impersonates a myPurdue user, and uses authenticated HTTPS requests
to scrape data from myPurdue pages.
This is a console application that's responsible for scraping information from myPurdue
CatalogApi project and storing it in the SQL database. This application is run
regularly as an Azure Webjob to keep the database up to date with the latest myPurdue
This is a class library that provides access to the SQL database via entity framework.
A Purdue.io API utilize this library for database access.
These contain unit tests for various parts of the API. Automated builds will fail if these tests don't pass. You're encouraged to write new tests for added functionality, or improve tests for existing features.