Skip to content

Latest commit

 

History

History
201 lines (121 loc) · 7.78 KB

README.md

File metadata and controls

201 lines (121 loc) · 7.78 KB

Problem Statement

As part of this project, we present to you Delagram: A Photo Portal. This is a web-application where users can upload pictures (we like memory - we believe every worth picture has an emotion attached with it), that is specifically designed keeping privacy in mind. With the way the software globalisation world has been moving in the past couple of years, it is quite evident that every country wants software independence - from social media applications to vital and crucial security applications. In this direction, we have taken up the task of creating a social media portal specifically for our fellow-mates at IIT-B.

Users of this application can form communities among themselves, while we ensure their security in that they don't inadvertantly include an unknown in their circle. With all that has been going with the world, this application is meant to provide a much needed social interaction among people that are close through friendship, and yet (sadly) far by distance, while ensuring their privacy.

If you like privacy and social interaction among your close friends, Delagram is the place to be!!

List of features

The initial build of the web based application provides the following set of cool functionalities -

  1. Signup for free - with no ads disturbing you!
  2. Connect with close ones - only people who know your unique (and private) user_id. See? We weren't kidding about privacy!
  3. Upload memories and cherish them with your circle - and yes, we do support filters.
  4. View memories of friends - interact with them (comment and/or give a star! - all of us could benefit from some dopamine).
  5. Chat, or as we call it - Gossip. We don't want you to obligate you with discussions on study related stuff that you do on other chat apps (you know which ;) - it even rhymes with 'app').
  6. We don't condone customer sticking in our application the whole day - studies are important! So, unlike some other applications (strangely they have book in their name!), we don't constantly serve you "serendipitous" stuff to keep you hooked.

We hope you enjoy your visits to our application :)

Backend Architecture:

backend

Sign Up Mechanism:

delagramAuth - signup

Login Mechanism:

delagramAuth - Login

General API Call:

delagramAuth - general

Texting Mechanism:

delagramAuth - chat

Contributors

Mayank Kakad | Siddharth Maurya | Swaroop Nath

Demo Videos

Login and Signup - https://drive.google.com/file/d/1YqpZ-4dMpVolsbeuElA7gn5sFFC8CyqK/view?usp=sharing

Functionalities - https://drive.google.com/file/d/1c8seaa3CC-xFF2b7yM50zxWklZdhoUGx/view?usp=sharing

Technology Stack

The web-application uses the following technologies -

  1. ReactJS (html, css, js).
  2. Java, Maven, Spring Boot.
  3. SQLite.
  4. Firebase (authentication, data storage).

List of deliverables

100% Signup/Login functionality.

100% Image Upload with filters.

100% Feed viewing and interacting with memories - giving stars, commenting and reporting (in grave cases).

50% Privacy limits and updating profile.

100% Direct messaging with people in circle.

Hardware and Software requirements

Hardware requirements -

  1. A working computer

Software requirements -

  1. Java 11
  2. NPM
  3. NodeJS
  4. Maven
  5. Spring

How to operate

  • In order to start the frontend, do the following -

      cd Frontend
    
      npm install
    
      npm start
    
  • In order to start the server -

      cd Backend
    
      mvn spring-boot:run
    

Make sure you have the following installed -

  1. Node modules in the delagram-ui folder.
  2. mvn - for Mac users, just run brew install mvn.

Primary Stakeholders of the project

  1. IIT-B students.
  2. Team Tensors.

Team Details

The team is comprised of -

  1. Siddharth Nimeshbhai Maurya (213050033)
  2. Mayank Kakad (213050028)
  3. Swaroop Nath (21Q050014)

Work distribution -

Given the time distribution, we had two constraints that we aimed to respect -

  1. Play to each of our strong suits.
  2. Equitable work distribution.

Siddharth, with the pre-exposure to front-end technologies, was a great find for the team.

Mayank, with his previous exposure to Android app development and Firebase was another great addition.

Swaroop, with his experience in industrial web-app development and mircroservices, was a valuable addition to backend technologies.

Responsibilities for each team mate -

  1. Siddharth - Development of the full UI on React JS, while maintaining a coherence with backend APIs made available.

  2. Swaroop - Developement, as well as unit-testing, of the following microservices -

     content_upload_service
    
     content_view_service
    
     profile_search_service
    

Along with this, this particular member has coded the pipeline of verification of Firebase JWT that comes from the frontend.

  1. Mayank - Development, as well as unit-testing, of the following microservices -

     auth_service
     
     chatting_service (has been a really tricky one)
    

Along with this distribution, the members have regularly engaged in sprint calls, ensuring that we progress ahead with a working code, tested end-to-end, following the well-established web-design principles.

Path to documentation

    Backend/doc/index.html
    Frontend/docs/index.html

Screenshots:

Login

00 Login

Sign Up

01 SignUp

Memory Card

02 1 MemoryCard

Dashboard

02 dashboard

Feed

03 feed

Gossip Room

04 gossip

Creating a Memory

05 UploadMemory

Add Buddy

06 addBuddy

References:

  1. https://www.npmjs.com/package/instagram-filters
  2. https://loading.io/css/
  3. https://ionic.io/ionicons
  4. https://firebase.google.com/docs/build
  5. https://www.baeldung.com
  6. https://stackoverflow.com
  7. https://www.youtube.com/watch?v=clH7SxG-Vdc&list=PLS1QulWo1RIYMQcf1y2bqQZbpXLzpKDUL
  8. https://www.geeksforgeeks.org/mvc-design-pattern/
  9. https://www.tutorialspoint.com/spring_boot/spring_boot_sending_email.htm