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.