Team Members

  • Tyler Cady (tcady3@gatech.edu)
    Engineering Manager, responsible for engineering task delegations, system architecture, optimization algorithm development, integration, and documentation.

  • Annie Vallamattam (avallamattam6@gatech.edu)
    Project Manager, responsible for general task delegation, client communication, front-end development, and user interface design.

  • Matthew Dworkin (mdworkin3@gatech.edu)
    Back-end development, responsible for database development, test infrastructure, data integration, and handling optimization algorithm output.

  • Natasha Narayanan (nnarayanan34@gatech.edu)
    Database management, front-end development, and back-end development.

  • Ignacio Galindo (igalindo3@gatech.edu)
    Back-end development, optimization algorithm input handling, database management, and front-end development.


API Documentation

Response Codes

CodeTextDescription
200SuccessThe request was completed successfully.
400Bad RequestThe request is invalid or missing required data.
401UnauthorizedThe request requires a user to be authenticated or authorized.
403ForbiddenThe server recognized the request but user access was denied.
404Not FoundThe request could not be completed because the URL is not recognized.
500Internal Server ErrorAn unexpected error occurred on the server.

GET /api/name

Retrieves user names based on user IDs.

Parameters

ParameterDescription
userIdOne or more user IDs used to retrieve names.

Response Fields

ResponseDescription
messageJSON object mapping user IDs to names.
errorMessage returned if invalid or missing.

POST /api/create-carpool-data

Generates a unique carpool ID for the created pool, saves the inputted data, and commits carpool data to the database.

Parameters

ParameterDescription
createCarpoolDataObject containing data for the carpool to be created.

Response Fields

ResponseDescription
messageSuccess message
joinCodeUnique carpool ID generated for the carpool
errorMessage returned if invalid or missing

GET /api/create-carpool-data

Retrieves carpool data after accepting the user and its carpoolID to identify the corresponding carpool.

Parameters

ParameterDescription
carpoolIdUnique ID of carpool to retrieve
creatorIdID of user who created carpool

Response Fields

ResponseDescription
createCarpoolDataCarpool data retrieved from database
errorMessage returned if invalid or missing

POST /api/join-carpool-data

Validates incoming joining data, and commits the carpool and user data to the database.

Parameters

ParameterDescription
joinCarpoolDataObject containing data for the carpool to be joined (includes createCarpoolData, joinData, and userId)

Response Fields

ResponseDescription
messageSuccess message
joinCodeUnique carpool ID of carpool that user joined
errorMessage returned if invalid or missing

GET /api/join-carpool-data

Retrieves carpool data after accepting the user.

Parameters

ParameterDescription
userIdID of user whose carpool data is being retrieved

Response Fields

ResponseDescription
createCarpoolDataCarpool data retrieved from database
errorMessage returned if invalid or missing

GET /api/optimization-results

Fetches optimization results from the database after authenticating a user and accepting the carpool ID.

Parameters

ParameterDescription
carpoolIdUnique ID of carpool whose optimization results are being retrieved

Response Fields

ResponseDescription
resultsOptimization results retrieved from the database
updatedAtTimestamp of when results were last updated
errorMessage returned if invalid or missing

POST /api/save-optimization

Confirms whether the user is the owner of the carpool, sanitizes optimization results, and saves incoming data in the database.

Parameters

ParameterDescription
carpoolIdUnique ID of carpool whose optimization results are being saved
resultsOptimization results to be saved

Response Fields

ResponseDescription
successBoolean indicating successful save
errorMessage returned if invalid, missing, or unauthorized

POST /api/update-carpool

Validates incoming carpool ID and data, then updates the carpool database with new data.

Parameters

ParameterDescription
carpoolIdUnique ID of carpool whose optimization results are being saved
carpoolDataNew data to update the carpool with

Response Fields

ResponseDescription
successBoolean indicating successful save
errorMessage returned if invalid, missing, or unauthorized

POST /api/update-user-carpool

Validates the incoming user ID, carpool ID, and carpool data, then updates the user-carpool-data database with new data.

Parameters

ParameterDescription
userIdUnique ID of user whose carpool data is being updated
carpoolIdUnique ID of carpool whose optimization results are being saved
userLocationUpdated user location
carpoolDataNew data to update the carpool with

Response Fields

ResponseDescription
successBoolean indicating successful save
messageSuccess message
errorMessage returned if invalid, missing, or unauthorized