Skip to content

isolutionssrl/InstaLike

 
 

Repository files navigation

InstaLike

Code analysis

Metric
Lines of code Lines of Code
Maintainability Maintainability Rating
Reliability Reliability Rating
Security Security Rating

Once upon a time...

This project was born, more or less, two years ago.
I was teaching a C# Course in a High School, and I needed a "cool" project to sum up all the concepts I explained throughout the course. Since (lucky or not) a Social Network is "cool by default", I decided to create a simple Instagram clone.
The guys attending the course appreciated the idea a lot, so I did my best to create a working web project that was also simple but with a significant set of features.
The original project was a .NET Framework 4.6.2 web application created using ASP.NET MVC 4.0 with Entity Framework 6.2 and SQL Server 2014 Express as backing store, and, since I had a lot of fun creating it, I decided to evolve it a little bit...

Evolution

The project looked interesting, so I decided to use it as my preferred playground for testing new technologies and patterns. Today InstaLike is a web application built using some interesting stuff:

  • Domain Driven Design.
  • ASP.NET Core.
  • CQRS Pattern.
  • O/RM Based persistence
  • Unit testing and integration testing.
  • Unstructured data (images) storage both on-premises and on the cloud).
  • Activity logging.
  • Cloud-based image recognition using Azure Computer Vision.

Features

  • User registration.
  • Sharing of pictures.
  • Put "Likes" on shared pictures.
  • Comments on shared pictures.
  • Follow and unfollow users.
  • Get notifications when other users interact with the content you shared.
  • Pictures Auto-tagging.
  • Cloud storage compatibility (e.g. Azure Blob Storage) for pictures.

Requirements

To work with InstaLike source code, you need:

Setup

  1. Download the code.
  2. Install the dotnet.exe-based FluentMigrator Runner
dotnet tool install -g FluentMigrator.DotNet.Cli
  1. Build InstaLike.Database project
cd InstaLike.Database
dotnet build Instalike.Database.csproj
  1. Create the database using the provided script
cd bin\Debug\netstandard2.0\Scripts
sqlcmd -S (local) -E -i DatabaseDefinition.sql -v DatabaseName="InstaLike" StoragePath="<path where you want to store data files>"
  1. Run migrations to create database objects
dotnet fm migrate --processor SqlServer2014 --connection "Data Source=(local); Initial Catalog=InstaLike; Integrated Security=True" --tag SqlServerOnPrem --assembly Instalike.Database.dll up
  1. Build and run the solution

Acknowledgements

This project has been built using these awesome Open Source projects:

Many thanks also to my friend and fellow worker Matteo for the graphic design. I gave him some rough stuff and he made it beautiful!

Releases

No releases published

Packages

No packages published

Languages

  • C# 80.9%
  • HTML 7.1%
  • CSS 6.1%
  • HCL 3.0%
  • JavaScript 1.9%
  • TSQL 0.8%
  • Batchfile 0.2%