Skip to content

This is an API for a recipe-sharing social media platform. It's part of my group project dissertation for my Bachelor's degree.

License

Notifications You must be signed in to change notification settings

Andrei-Constantin-Programmer/LangfoodiAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Langfoodi Logo.

Langfoodi API

.NET GitHub repo size GitHub License Quality Gate Status

Coverage Security Rating Maintainability Rating Reliability Rating Lines of Code Vulnerabilities

The robust API for the Langfoodi recipe-sharing social media platform.

Find the app this API services at Langfoodi App.

Table of Contents

Introduction

Langfoodi is a recipe-sharing social media platform that combines recipe management with messaging functionalities.

Langfoodi has been my group project dissertation during my Bachelor's degree at the University of Kent, on which I worked together with my team.

This repository contains the API that services the mobile app for Langfoodi, and serves as the validator, coordinator, and interface with storage solutions.

Features

The API provides endpoints that allow the mobile app to:

  • Register/authenticate users
  • Create/modify/delete/view recipes
  • Create connections between users
  • Create groups of users
  • Send/update/delete messages
  • Interact with Cloudinary

Additionally, the API provides the SignalR hub MessagingHub to allow for live messaging between users. Clients subscribed to it will receive signals when messages are received, read, deleted etc.

The data is stored in MongoDB, with sensitive data (user PII, passwords, message contents etc.) encrypted. Images are stored in Cloudinary.

Installation

Prerequisites

Before you start, ensure you have the following set up on either your machine or the cloud:

  • .NET 7 SDK - Download and install from the .NET 7 SDK download page

  • MongoDB Cluster - Create your own Mongo cluster (see the MongoDB tutorial)

  • Cloudinary Environment - To use images, you will need a Cloudinary environment (see the Cloudinary tutorial)

  • (Optional) IDE (recommended: Visual Studio 2022)

    • If using Visual Studio, ensure you have the .NET desktop development and ASP.NET and web development workloads installed
  • (Optional) DataDog Organisation (follow the DataDog setup wizard)

Installation - Using Visual Studio 2022

  1. Clone the Repository either:

  2. Open the Solution - File > Open > Project/Solution (or CTRL+SHIFT+O), and select the .sln file in the root of the repository

  3. Add appsettings - You need to add your own API keys and secrets in RecipeSocialMediaAPI.Presentation > appsettings.json

  4. Run API - Select RecipeSocialMediaAPI.Presentation as your startup project and run the API (F5 or the Start button in the toolbar)
    This should also open Swagger, where you can view the endpoints and their documentation.

Installation - Using command line

  1. Clone the Repository:

    git clone https://github.com/Andrei-Constantin-Programmer/LangfoodiAPI.git
  2. Navigate to the Startup Project

    cd LangfoodiAPI/RecipeSocialMediaAPI.Presentation
  3. Restore Dependencies

    dotnet restore
  4. Update appsettings.json using a text/code editor of your choice (see the steps above)

  5. Build Project

    dotnet build
  6. Run Project

    dotnet run
  7. (Optional) Navigate to Swagger to see endpoint documentation
    The endpoints should be visible under https://localhost:xxxx/swagger/index.html (check console logs for Now listening on: to get port)

Team

Andrei Constantin (myself)
Milovan Gveric
Filip Fois
Nathan Gipson

Acknowledgements

I would like to thank George Langroudi for supervising our dissertation.

I would also like to thank the University of Kent for the opportunity to work on this project.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

This is an API for a recipe-sharing social media platform. It's part of my group project dissertation for my Bachelor's degree.

Topics

Resources

License

Stars

Watchers

Forks

Languages