Skip to content

heramb99/LostAndFound

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

project

We help you find your lost items!

About • Features • How it works • Tech Stack • User Scenarios • Contributors • Test Coverage

About

Lost and found website is designed to help users find lost items by allowing them to report lost items, search for found items, and connect with others in their community.


Features

  • Users can post any item they found
  • Users can search in item lost catalogue and request the user for return.
  • Connect and chat with the item founder and approved user
  • Return the found item and earn rewards

How it works

The project is divided into two parts:

  1. Backend
  2. Frontend

Pre-requisites

Before you begin, you will need to have the following tools installed on your machine:

Preferred IDE

Cloning project

# Clone this repository
$ git clone https://git.cs.dal.ca/courses/2023-fall/csci-5308/Group07

Running the web application (Frontend)

# Access the project folder in your terminal
$ cd frontend/lost-and-found

# Install the dependencies
$ npm install

# Run the application in development mode
$ npm run start

# The application will open on the port: 3000 - go to http://localhost:3000

Build and deploy web application using docker

# Create docker image of frontend application
$ docker build -t <your_dockerhub_username>/lost-and-found:latest-fe -f ./frontend/LostAndFound/Dockerfile ./frontend/LostAndFound    

# Push the docker image to Docker hub.
$ docker push lost-and-found:latest-fe

# Pull the docker image from Docker hub to your server.
$ docker pull docker.io/<your_dockerhub_username>/lost-and-found:latest-fe

# Run the docker command to start the frontend application on your server.
$ docker run -d -p 3000:3000 --name lost-and-found-frontend docker.io/<your_dockerhub_username>/lost-and-found:latest-fe

Running the springboot application (Backend)

# Access the project folder in your terminal
$ cd Backend/LostAndFound  

# Build the project    
$ mvn clean install     
    
# Run the Spring Boot application 
$ mvn spring-boot:run    

Build and deploy springboot application using docker

# Create docker image of backend application
$ docker build -t <your_dockerhub_username>/lost-and-found:latest-be -f ./Backend/LostAndFound/Dockerfile ./Backend/LostAndFound    

# Push the docker image to Docker hub.
$ docker push lost-and-found:latest-be

# Pull the docker image from Docker hub to your server.
$ docker pull docker.io/<your_dockerhub_username>/lost-and-found:latest-be

# Run the docker command to start the backend application on your server.
$ docker run -d -p 8080:8080 --name lost-and-found-backend docker.io/<your_dockerhub_username>/lost-and-found:latest-be

Tech Stack

The following tools were used in the construction of the project:

React React

  • A JavaScript library for building user interfaces.

Spring Boot Spring Boot

  • A Java-based framework for building web applications and microservices.

MongoDB MongoDB

  • A NoSQL database for storing and retrieving data.

Dependencies

Frontend
  • @emotion/react: ^11.11.1
  • @emotion/styled: ^11.11.0
  • @mui/icons-material: ^5.14.18
  • @mui/material: ^5.14.18
  • @testing-library/jest-dom: ^5.17.0
  • @testing-library/react: ^13.4.0
  • @testing-library/user-event: ^13.5.0
  • axios: ^1.5.1
  • bootstrap-icons: ^1.11.1
  • cross-env: ^7.0.3
  • dotenv: ^16.3.1
  • firebase: ^10.5.0
  • leaflet: 1.7.1
  • leaflet-geosearch: 3.2.1
  • leaflet-search: ^4.0.0
  • lodash: ^4.17.21
  • react: ^17.0.2
  • react-bootstrap: ^2.9.0
  • react-bootstrap-icons: ^1.10.3
  • react-bootstrap-toggle: ^2.3.2
  • react-dom: ^17.0.2
  • react-footer-comp: ^3.0.1
  • react-icons: ^4.11.0
  • react-leaflet: 3.1.0
  • react-redux: ^8.1.3
  • react-router-dom: ^5.3.4
  • react-scripts: 5.0.1
  • react-scroll: ^1.9.0
  • react-toastify: ^9.1.3
  • redux: ^4.2.1
  • redux-thunk: ^2.4.2
  • uuid: ^9.0.1
  • validator: ^13.11.0
  • web-vitals: ^2.1.4
Backend
  • Spring Boot Starter Parent Version: 2.7.16
  • Java Version: 17
  • Auth0 Spring Security API Version: 1.5.2
  • JUnit Jupiter API Version: 5.10.1
  • Spring Boot Starter Data MongoDB Version: 3.1.4
  • Lombok Version: 1.18.30

User Scenarios

  1. Sign-up Screen Signup
2. **Login Screen** ![login](https://firebasestorage.googleapis.com/v0/b/lostnfound-7c21c.appspot.com/o/github-readme%2Fimage11.png?alt=media&token=c742bf48-2bd1-476a-8ee1-cd6ce59267d3)
  1. Verify Email before login verify
  1. Reset password reset

    emailreset

  2. Home Screen

    1. Found items posted by user itemposted

    2. Apply filters (Below image shows filter applied using keyword) filter

  3. Report Lost Item User can report lost items by entering following details:

    • Name of item
    • Item Description
    • Category
    • Upload images/videos related to item
    • Last seen location of item Users can edit the details of posted lost items postlost
  4. Report Found Item User can report found items by entering following details:

    • Name of item
    • Item Description
    • Category
    • Upload images/videos related to item
    • Location at which item was found

    founditem

  5. Lost catalogue (List of items found by all users) User can search found items by applying following filters:

    • Keyword (Present in title and description)
    • Date
    • Category
    • Location with radius

    catalogue

  6. Raise claim request by linking your lost item

While raising claim request, user should linked the lost item posted by them, so that founder can verify authenticity of the request
![claimlink](https://firebasestorage.googleapis.com/v0/b/lostnfound-7c21c.appspot.com/o/github-readme%2Fimage17.png?alt=media&token=90a7a152-9b04-42c1-b63b-fd576264d0b2)
<span>
  1. List of claim request received
1. **List of request received and user can also filter based on status (Requested, Accepted, Rejected)** ![received](https://firebasestorage.googleapis.com/v0/b/lostnfound-7c21c.appspot.com/o/github-readme%2Fimage12.png?alt=media&token=35b86b00-f861-4dbe-b917-b5780819a02d) 2. **See the details of linked lost item** Based on the details of linked lost item, user can decide whether to approve or reject claim request ![lostitem](https://firebasestorage.googleapis.com/v0/b/lostnfound-7c21c.appspot.com/o/github-readme%2Fimage5.png?alt=media&token=8cd5fa3c-7adf-48a9-8be9-af108b004289)
  1. List of Claim request raised User can revoke claim request posted by them raised
  1. Chats
    1. Users can only chat with users only if claim request is accepted approve

    2. Founder can approve the user as owner after chatting approve

    3. Owner confirming the return of item Requested user can only see confirm return button, when founder approves the requester as owner return

      returnMsg

  1. Founder receiving reward Once the owner confirms the return of item, founder will receive reward rewards

Test Coverage

  • Class Coverage: 96% (24/25)
  • Method Coverage: 95% (134/141)
  • Line Coverage: 96% (353/367)

coverage-img


Contributors

Meet the team behind the Lost and Found project:

  1. Heramb Kulkarni React [email protected] React Heramb Kulkarni

  2. Angel Christian React [email protected] React Angel Christian

  3. Aman Desai React [email protected] React Aman Desai

  4. Harsh Mehta React [email protected] React Harsh Mehta

  5. Tirth Bharatiya React [email protected] React Tirth Bharatiya

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published