hidden pictures archive
hidden pictures archive is a backend-focused project with an evolving frontend. The goal of this project is to allow users to create their own image collections from scanned or photographed images of old magazines or books after registering. Users can build a personalized digital image archive.
The backend is built using Node.js and Express, with data stored in a MongoDB database that I created myself. Images are stored on Cloudinary, with the image paths stored in the database, enabling seamless image storage within the application.
- User registration (including profile picture upload)
- User login
- Creating image collections
- Adding images to collections
- Basic CRUD operations for users, collections, and images
The backend incorporates the following technologies:
- JSON Web Tokens (JWT): Used for secure authentication and user session management.
- bcrypt: Used for securely hashing user passwords before storing them in the database.
- Multer: Handles file uploads, including user profile pictures and images for collections.
- ClamAV (ClamScan): Used for scanning uploaded images to ensure they are free of malware or viruses before being stored.
The frontend is currently under development using React.js and Vite.js, with ongoing work to complete the interface.
- CRUD Operations: Basic operations for retrieving, deleting, and updating users, collections, and images.
- User Registration: Allows users to create an account, including uploading a profile picture.
- User Login: Authentication system for secure access.
- Image Collection Management: Users can create and manage their image collections.
To set up the project locally, follow these steps:
-
Clone the repository:
git clone https://github.com/your-username/hiddenBookArchive.git
-
Navigate to the project directory:
cd hiddenBookArchive
-
Install dependencies:
npm install
-
Configure environment variables:
- In both the
backend
andfrontend
directories, you will find.env.example
files. - Copy the
.env.example
file to.env
in each directory:cp backend/.env.example backend/.env cp frontend/.env.example frontend/.env
- Open each
.env
file and add the required environment variables (e.g., database connection string, Cloudinary API keys).
- In both the
-
Start the backend and frontend servers:
npm run dev
This project can be used to digitize and organize your own analog image archive, sourced from old books and/or magazines, into collections that are stored and managed digitally.
- A code editor (e.g., VSCode)
- A MongoDB database
- A Cloudinary account for image storage
- ClamAV installed for scanning uploaded images
Suggestions or improvements are welcome. Please feel free to reach out with your ideas or feedback.
For any questions or support, feel free to contact me through my GitHub profile.