Skip to content

johnmcraig/Azure-image-gallery

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Azure Image Gallery

stars last commit pull requests

An image gallery with file hosting on Azure Blob Storage

Screenshot

Demo

See a demo of the application at the following link: AzureImageGallery Currently offline to find a new hosting site.

Scope

This is a full stack application using C#/ASP.Net Core as an image gallery that uploads and reads files to an Azure blob storage container. Images have full create, edit, and delete functionality.

A SQL database reads an Uri to the actual file in the container of the storage service and serves it via web view, thus reducing space (and cost) needed in a relational database.

Project Structure

Azure-Image-Gallery is an N-tier project that contains three major project layers:

  • The MVC web application contained in AzureImageGallery.Web.
  • Database configuration, interfaces, and entities in the AzureImageGallery.Data.
  • The business logic services layer to complete operations in the AzureImageGallery.Services directory.

Features

  • Upload images or files and view them by date created.
  • Search by title of an image.
  • Paging.
  • Authentication with Login/Register.

Setup and Download

In order to use this application:

  • Download a zip file or clone the repository.
~$ git clone https://github.com/johnmcraig/azure-image-gallery
  • Then, gather any missing NuGet packages and restore the project files using the DotNet command dotnet restore (or Build in Visual Studio).

  • Afterwards, you will need to have an Azure account that has a Blob Storage service. Get the connection string from the account info under Access Keys, then pass them in the User Secrets or Application settings JSON file as: { "AzureStorageConnectionString": "YourActualKey" }.

    Additionally, if you do not have an appsettings.json file, you will need to create one.

  • Make sure you use either Visual Studio Secret Manager or the dotnet command line to add the above JSON object (from point #3.) so the CloudStorage class and methods can connect using that string.

  • Upon initial startup of the application, if it is currently in development mode, a Sqlite database will be created and a few images will be seeded into the database for testing purposes.

Technologies

  • C#/ASP.NET Core MVC --version 3.1
  • Sqlite3 Database for Development, SQL Server for product.
  • Entity Framework Core as the ORM
  • Azure Blob Storage
  • HTML5, CSS3, and Bootstrap 4.3.1

The required NuGet Packages

  • Microsoft.EntityFramework.Core
  • Azure.Storage.Blobs v12+
  • Microsoft.EntityFrameworkCore.Design
  • Microsoft.EntityFrameworkCore.Sqlite

Future Features to be Implemented

  • User Roles
  • Admin Panel
  • Able to edit tags