Code Monkey home page Code Monkey logo

imagesharingapp's Introduction

imageSharingApp

This fullstack MERN (MongoDB, Express.js, React.js, Node.js) application allows users to upload, search, list, and delete images. The frontend and backend are organized into separate folders within the same repository, providing a clear separation of concerns. The frontend is built with React and TypeScript, utilizing React Query for efficient data fetching and caching.

Features

  • Upload Image: Users can upload images through the API endpoint, storing them on the local server.
  • Search Image: Perform a search for images based on their names.
  • List All Images: Retrieve a list of all uploaded images.
  • Delete Image: Remove images from the server.

Endpoint

Upload Image - POST - /api/files/upload
Search Image - GET - /api/files/search + search query
List All Images - GET - /api/files/
Delete Image - DELETE - /api/files/:imageId

Project Duration

This project was completed in approximately 15 hours.

Future Improvements

Given more time, additional features could be implemented:

  • Download Feature: Enhance user experience by introducing a download functionality, enabling users to easily download the uploaded images.
  • Improve Scalability and Availability: Elevate the application's scalability and ensure high availability by integrating a blob storage service such as Amazon S3. This approach facilitates distributed file storage, enhancing overall system performance.
  • Protect the enpoints: Implement robust security measures by incorporating a rate limiter for the server. This safeguard helps protect the application against potential Distributed Denial of Service (DDoS) attacks and prevents unauthorized web scraping attempts, ensuring the stability and reliability of the system.

Folder Structure

  • frontend: Contains the React.js frontend built with TypeScript.
  • backend: Houses the Node.js backend server with Express.js.
  • images: A separate folder for storing images uploaded through the application.

How to Run

  1. Clone the repo
git clone [email protected]:jozzbruer/imageSharingApp.git
  1. Navigate to Backend Folder:

    cd backend
  2. Install Backend Dependencies:

    npm install
  3. Start Backend Server:

    npm run start
  4. Navigate to Frontend Folder:

    cd ../frontend
  5. Install Frontend Dependencies:

    npm install
  6. Start Frontend Application:

    npm start
  7. Access the Application:

    Open your browser and go to http://localhost:3000 to use the application.

Technologies Used

  • Frontend: React, TypeScript, React Query
  • Backend: Node.js, Express.js, MongoDB
  • Storage: Local server for image storage

Feel free to explore this project! If you have any questions or feedback, please reach out.

imagesharingapp's People

Contributors

jozzbruer avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.