SocioMark
- 4 minsTable of Contents:
- Insipiration
- Video Demonstration (YouTube)
- Generic Social Media Features
- What does Verify do?
- Tech Stack
- Project Links
- End Notes
- Roadmap/Code/Documentation
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!
Video Demonstration (YouTube)
Generic Social Media Features
Like any other social media platform, SocioMark provides users ability to:
- Register
- Login/Logout
- Search Profiles
- Visit Profiles
- Edit own Profile
- Create Posts
- Edit own Post
- Like/Dislike Posts
- Comment on Posts
- Report Posts
However, apart from these generic features, one special feature that SocioMark provides is:
- Verify Posts
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:
- Spatial Domain (Least Significant Bits - LSB)
- 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!
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.
Cloudinary
- The database to store the imagesMongoDB Atlas
- The database to store the users, posts, comments and likes
The backend endpoints, their routes, their model schemas, and their controllers are all implemented in Python using FastAPI.
Project Links
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.
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.