https://github.com/abhiraj-ku/cloudstore-minor-project-
We are team CloudStore your cloud storage partner . Here to help you capture and sva
https://github.com/abhiraj-ku/cloudstore-minor-project-
aws expressjs mongodb node nodejs-s3
Last synced: 10 days ago
JSON representation
We are team CloudStore your cloud storage partner . Here to help you capture and sva
- Host: GitHub
- URL: https://github.com/abhiraj-ku/cloudstore-minor-project-
- Owner: abhiraj-ku
- License: mit
- Created: 2024-08-23T17:40:09.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-10-20T17:08:59.000Z (7 months ago)
- Last Synced: 2025-04-03T04:51:07.193Z (about 2 months ago)
- Topics: aws, expressjs, mongodb, node, nodejs-s3
- Language: HTML
- Homepage:
- Size: 27.3 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CloudStore - your cloud based data storage platform
This is a AWS based data storage platform with features like user management, file upload and retrieve , unique link for each file with password based protection and much. currently we store documents and plans to add videos and more formats for users
### Tech stacks
- MongoDB
- AWS S3 for file storage**Features**
- **User Authentication:** Signup and login functionality .
- **File Upload:** Upload files to AWS S3.
- **File Management:** Retrieve and delete user files.
- **Link sharing:** share uniue links with people with password protected files
- **Secure & Reliable :** Backed by AWS s3 claims 99.9999(11 times) of files being stored securely .**Project Structure**
```
.
├── app.js # Main application entry point
├── config.json # AWS S3 configuration file
├── controllers # Controllers for business logic
│ ├── authController.js
│ └── userController.js
├── models # Mongoose models for MongoDB collections
│ ├── loginDataModel.js
│ └── userDataModel.js
├── routes # Route definitions for the API
│ ├── authRoutes.js
│ └── userRoutes.js
├── utils # Utility functions (e.g., S3 utilities)
│ └── s3Utils.js
└── views # Frontend views (EJS templates)
└── index.html```
**Tech Stack**
- Backend: Node.js, Express.js
- Database: MongoDB (Mongoose)
- Cloud: AWS cloudfront(CDN), route53, cloudwatch, internet gateway all inside cutsom VPC
- File Storage: AWS S3
- Frontend: html,css, javascript
- Middleware:auth-token , Multer (for file uploads)**Getting Started**
**Prerequisites**
- Node.js and npm installed
- MongoDB running locally or a MongoDB Atlas connection URI
- AWS Account**Installation**
1. Clone the repository:
Bash
```
https://github.com/your-username/cloudStore-minor-project-.git```
2. Change directory:
Bash
```
cd cloudStore-minor-project-```
3. Install dependencies:
Bash
```
npm install```
4. Configure your S3 credentials in `config.json`:
JSON
```
{
"accessKeyId": "your-access-key-id",
"secretAccessKey": "your-secret-access-key",
"region": "your-region"
}```
5. Start the application:
Bash
```
node app.js```
**API Endpoints**
**Authentication Routes**
- `POST /api/auth/signup`: Register a new user.
- `POST /api/auth/login`: Log in an existing user.**User Routes**
- `POST /api/user/userdata`: Upload user files.
- `GET /api/user/userdata`: Retrieve user data by email.
- `GET /api/user/delete`: Delete a user file from S3.**How to Use**
1. Start MongoDB locally:
Bash
```
mongod```
2. Run the app:
Bash
```
node app.js```
3. Test the API using Postman or any other API client.