Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bestbynature/photo-fortress
The "Photo Fortress" GitHub repository is a secure image upload and retrieval application built using TypeScript and MongoDB. This repository contains endpoints for uploading images (/upload) and retrieving images (/get_image) securely.
https://github.com/bestbynature/photo-fortress
es6-modules mocha mongodb mongoose nodejs typescript
Last synced: 3 days ago
JSON representation
The "Photo Fortress" GitHub repository is a secure image upload and retrieval application built using TypeScript and MongoDB. This repository contains endpoints for uploading images (/upload) and retrieving images (/get_image) securely.
- Host: GitHub
- URL: https://github.com/bestbynature/photo-fortress
- Owner: Bestbynature
- License: mit
- Created: 2024-04-05T12:05:49.000Z (9 months ago)
- Default Branch: dev
- Last Pushed: 2024-04-07T11:51:53.000Z (9 months ago)
- Last Synced: 2024-12-25T18:41:35.388Z (3 days ago)
- Topics: es6-modules, mocha, mongodb, mongoose, nodejs, typescript
- Language: HTML
- Homepage:
- Size: 101 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 📗 Table of Contents
- [📗 Table of Contents](#-table-of-contents)
- [📖 Photo Fortress App](#-Photo-Fortress-App)
- [🛠 Built With ](#-built-with-)
- [Tech Stack ](#tech-stack-)
- [Key Features ](#key-features-)
- [Live Demo](#live-demo)
- [💻 Getting Started ](#-getting-started-)
- [Prerequisites](#prerequisites)
- [Setup](#setup)
- [Usage](#usage)
- [Api Documentation](#api-documentation)
- [To start the development server](#to-start-the-development-server)
- [👥 Author ](#-author-)
- [🔭 Future Features ](#-future-features-)
- [🤝 Contributing ](#-contributing-)
- [⭐️ Show your support ](#️-show-your-support-)
- [🙏 Acknowledgments ](#-acknowledgments-)
- [📝 License ](#-license-)
The "Photo Fortress" GitHub repository is a secure image upload and retrieval application built using TypeScript and MongoDB. This repository contains endpoints for uploading images (/upload) and retrieving images (/get_image) securely. It includes validation checks to ensure only image files are accepted for upload, with informative error messages provided for invalid file types. Error handling is implemented to address various issues, such as invalid credentials or database errors. The repository also includes documentation explaining how to use the API endpoints, including details on required request parameters and response formats. With features for storing images securely and efficiently, "Photo Fortress" offers a robust solution for managing and accessing image assets in web applications.
Project languages and Libraries
- TypeScript
- JavaScript
FrameWork
- Node.js
- Express.js
- Dotenv
- multer
DataBase
- MongoDB
- Mongoose
- [x] Secure image upload endpoint ('/upload')
- [x] Secure image retrieval endpoint ('/get_image')
- [x] Validation checks for image file types
- [x] Error handling for invalid credentials and database errors
- [x] Documentation for API endpoints ('/api/docs')
[Please check back for the hosted version](#). The video demonstration is given below:
# [Photo_Fortress_App_Demonstration.mp4](https://drive.google.com/file/d/1LFj3T5j9kyXrdPIWlK3YrjBbdQF9Zdu6/view?usp=sharing)
To get a local copy up and running, follow these steps.
### Setup
for cloning follow this steps
- go to the green `code` button at the top left of this Repository
- copy either `SSH` or `https` link depending on your preference and the previous setup you've made on your system
- open your terminal and navigate into your desired folder
- Then run `git clone ` command
- or just download `ZIP` file
- Create `.env` file in root directory and add your database connection string as `MONGO_URI` and your port number as `PORT`
- Then run `yarn install` or `npm install` to install all dependencies
### Usage
To run the project, execute the following command:
- [x] `npm run dev` or `yarn dev` to start the development server
- [x] A message should display on the terminal saying `connected to database` if the connection is successful.
- [x] Another message should be at the terminal saying `Server running on port 3000 or the port you specified in the .env file`
- [x] Open your browser and navigate to `http://localhost:3000` to access the application.
- [x] You can now upload and retrieve images using the API endpoints provided in the documentation.
- [x] Click the get all Ids button to get a list of all the ids of the images you have uploaded and paste the id in the get image by id input field to get the image.
- [x] To upload an image, click the choose file button and select an image file from your local machine. Then click the upload button to submit the image.
- [x] The API documentation is available at [Api Documentation](./documentation/api-documentation.md) and provides comprehensive information on how to interact with the API endpoints to upload and retrieve images.
👤 Author: Damilare
- GitHub: [@githubhandle](https://github.com/Bestbynature)
- Twitter: [@twitterhandle](https://twitter.com/Dammybest)
- LinkedIn: [LinkedIn](https://www.linkedin.com/in/damilareismailabestbynature/)
- [x] Add user authentication
- [x] Implement image resizing and compression
- [x] Add support for additional file types (e.g., PDFs, videos)
- [x] Implement image search functionality
- [x] Add support for image metadata (e.g., tags, descriptions)
- [x] Implement image sharing and collaboration features
- [x] Add support for image editing (e.g., cropping, filters)
- [x] Implement image categorization and organization features
- [x] Add support for image galleries and albums
- [x] Implement image versioning and rollback features
- [x] Add support for image annotations and comments
Contributions, issues, and feature requests are welcome!
Feel free to check the [issues page](../../issues/).
If you like this project please give it a star or [buy me a coffee](https://www.buymeacoffee.com/dammylare) to show your support!
I appreciate [Tobams Group](https://tobamsgroup.com) for providing the inspiration for this work.
This project is [MIT](./LICENSE) licensed.