DRIVE is a full-stack file storage application built with Node.js, Express, and EJS. This project provides a secure and efficient way to store and manage files online.
- π File upload and download functionality
- π File organization and management
- π Secure file storage
- π± Responsive web interface
- β‘ Fast and efficient file operations
- Backend: Node.js, Express.js
- Template Engine: EJS
- Language: JavaScript
- Architecture: MVC Pattern
DRIVE/
βββ config/ # Configuration files
βββ models/ # Database models
βββ routes/ # Application routes
βββ views/ # EJS templates
βββ node_modules/ # Dependencies
βββ app.js # Main application file
βββ package.json # Project dependencies
- Node.js (v14 or higher)
- npm or yarn
- Clone the repository
git clone https://github.com/rishabh8870/DRIVE.git- Install dependencies
cd DRIVE
npm install- Start the application
npm start- Open your browser and visit
http://localhost:3000
Rishabh - @rishabh8870
- Improved README with detailed setup instructions
- Added comprehensive feature descriptions
- Better project structure documentation
-
- Updated documentation and improved code quality
- Advanced file compression support
- User authentication system
- Cloud storage integration
βοΈ If you find this project useful, please consider giving it a star!
- GET
/files- Retrieve all files - POST
/upload- Upload a new file - GET
/download/:id- Download a file - DELETE
/delete/:id- Delete a file - GET
/file/:id- Get file details
Create a .env file in the root directory:
PORT=3000
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=drive_db
NODE_ENV=development
FILE_UPLOAD_PATH=./uploadsconst formData = new FormData();
formData.append('file', fileInput.files[0]);
fetch('/upload', {
method: 'POST',
body: formData
})
.then(res => res.json())
.then(data => console.log('File uploaded:', data))
.catch(err => console.error('Upload failed:', err));const fileId = '123';
window.location.href = `/download/${fileId}`;Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a new branch (
git checkout -b feature/amazing-feature) - Make your changes and commit (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Use meaningful variable names
- Write comments for complex logic
- Follow MVC pattern structure
- Test your changes before submitting PR
- Update README if adding new features
This project is open source and available under the MIT License.
If you see "Port 3000 is already in use", try:
# Find the process using port 3000
netstat -ano | findstr :3000
# Kill the process or use a different port
set PORT=3001 && npm startEnsure MongoDB is running:
# Start MongoDB service
net start MongoDB- Check if the uploads directory exists
- Verify file size limits in configuration
- Ensure sufficient disk space
If you encounter any issues:
- Check existing issues
- Create a new issue with detailed information
- Include error messages and system information
Updated on Jan 21, 2026 - Documentation improvements