Contributing

Hayden McAfee edited this page May 14, 2017 · 2 revisions

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

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.

Build Status

master https://api.purdue.io/ Build Status
dev https://api-dev.purdue.io/ Build Status

Developers: Getting Started

  1. Install Visual Studio 2017
  2. Clone the repository by selecting "clone" in the "Local Git Repositories" section of Team Explorer and pasting the clone URL
  3. 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.
  4. Select the Home button in Team Explorer and open the Purdue.io API Visual Studio Solution.
  5. Run!

Layout

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.

CatalogApi

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.

CatalogSync

This is a console application that's responsible for scraping information from myPurdue via the 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 catalog information.

PurdueIoDb

This is a class library that provides access to the SQL database via entity framework. CatalogSync and A Purdue.io API utilize this library for database access.

Test Projects

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.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.