SocioMark

SocioMark

- 4 mins

Table of Contents:


This project was completed as a part of Sprint 2 Hackathon conducted during the MLH-Fellowship (Spring 2021).

Insipiration

Ending LinkedIn’s famous HR story (38K - 25K) once and for all!

Data Authenticity on social media platforms these days is a joke. Plagiarism is widespread, as it takes almost no efforts to re-post someone else’s post without their knowledge.

And that is precisely where SocioMark fits in.

Imagine a social media platform that lets you upload images and secures them by embedding a personalised hash - such that your asset will always remain your asset, regardless of who posts it!

To build such a platform, our team (Me, Bodhisha Thomas, Deepak Agrawal and Sumi Kolli) decided to collaborate over the last sprint of the MLH-Fellowship.

A quick spoiler: we won!

SocioMark Landing Page

SocioMark Landing Page

Video Demonstration (YouTube)

Generic Social Media Features

Like any other social media platform, SocioMark provides users ability to:

User Profile

User Profile (and Post)

However, apart from these generic features, one special feature that SocioMark provides is:

What does Verify do?

When a user creates a post with an image asset, the user’s unique id from the database is encrypted via SHA and a unique 256-bit binary number is generated, which is ultimately embedded onto the image.

Embedding is done using a combined DCT-DWT Algorithm via an Arnold Transformation on the image.

Why DCT-DWT?

Watermarking an image (embedding some information) can be done via 2 ways:

  1. Spatial Domain (Least Significant Bits - LSB)
  2. Frequency Domain (Discrete Cosine Transform - DCT, Discrete Wavelet Transform - DWT)

In the spatial domain, the classic LSB supports a large amount of watermark information and has little impact on the original image. However, the anti-interference ability is relatively poor and cannot resist image cropping, scaling and jpg compression.

In the frequency domain, such as DCT and DWT, the algorithms have strong anti-interference ability.

Which means even if we attack the image by compressing/adding artifacts to the image - the information embedded in the image will still retain!

Information Retention

Information retained even after an attack

Tech Stack

To give birth to this platform, we used FARM Stack:-

(Fa)stAPI - Server, (R)eactJS - Client, (M)ongoDB - Database

Being a Python backend and a Javascript frontend, both are deployed and maintained separately on Heroku and Netlify respectively.

Database Schema

Database Schema

The backend endpoints, their routes, their model schemas, and their controllers are all implemented in Python using FastAPI.

Server Endpoints

Server Endpoints
Description Type Link
Demo YouTube youtu.be/1J6-tyKmhdc/
Frontend Netlify sociomark.netlify.app/
Backend Heroku sociomark-backend.herokuapp.com/
Submission Devpost devpost.com/software/sociomark/
Source Code GitHub MLH-Fellowship/SocioMark/

End Notes

SocioMark is a Progressive Web Application (it can be installed on devices!), is completely Responsive (it works on mobile devices!) - and ensures Data Authenticity throughout the platform.

Mobile PWA Desktop PWA

PWA Setup (Mobile/Desktop)

Roadmap/Code/Documentation

With more than ~60 closed Pull Requests and ~70 closed Issues across 4 core developers and 5 contributors, the repository is open sourced at MLH-Fellowship’s GitHub.

Aitik Gupta

I go by @aitikgupta throughout the web! \o/

rss facebook twitter github gitlab gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo telegram stackoverflow reddit quora quora key download slideshare speakerdeck googlescholar researchgate mendeley orcid impactstory figshare pubmed