Files
FileRise/README.md
2025-02-21 20:13:53 -05:00

90 lines
3.4 KiB
Markdown

Here are list of changes made to original code base:
# Functionality & Features
- **Multi-file Upload:**
Allows users to upload multiple files at once, which improves efficiency and user experience.
- **File Editing:**
Built-in editing functionality for text-based files enables quick modifications without leaving the interface.
- **Batch Deleting:**
The ability to select multiple files and delete them in one action streamlines file management.
- **Sorting & Filtering:**
Users can sort files by various attributes (name, date modified, uploaded date, size, uploader), making navigation easier.
- **User Management:**
Incorporates secure authentication (with hashed passwords) and admin-only controls for adding new users.
# Security
- **Password Hashing:**
Using PHP's `password_hash()` and `password_verify()` ensures that user credentials are securely stored and verified.
- **Session-based Authentication:**
Leveraging PHP sessions to maintain secure user state across the application.
- **Access Control:**
Admins have extra privileges (such as creating new users), which is properly enforced via session checks and restricted endpoints.
- **Safe File Operations:**
File metadata (including uploader info) is stored securely in JSON, helping avoid direct exposure of sensitive details.
# User Experience & Interface
- **Responsive Design:**
The layout adapts to different screen sizes, ensuring a good experience on both desktop and mobile devices.
- **Dynamic UI Updates:**
Uses modern JavaScript (Fetch API, asynchronous calls) to update the file list and authentication state without full page reloads.
- **Clear Feedback:**
Users receive immediate alerts and visual feedback for actions like login, file upload, and deletion.
# Extensibility & Maintainability
- **Modular Code Structure:**
The project is divided into distinct files (`auth.js`, `upload.js`, `displayFileList.js`, etc.), which makes it easier to manage and extend.
- **Customization Options:**
The codebase is flexible enough to allow the addition of more file types, new features (e.g., versioning, file previews), or integration with other systems.
- **Good Practices Demonstrated:**
The project illustrates the use of best practices in PHP (such as session management and secure password handling) and modern front-end JavaScript, making it a valuable learning resource.
# Deployment & Real-world Use
- **Reverse Proxy Compatibility:**
With proper server configuration and security measures, this project can be deployed behind a reverse proxy, offering an extra layer of security.
- **Real-world Scenario:**
A multi-file uploader with editing and user management is useful in many environments—whether for managing firmware, documents, images, or any files—making this a practical solution.
Original readme:
# File Uploader
A simple file uploader web app that allows authenticated users to upload, list, and delete files.
The application uses PHP, running on Apache2, Ubuntu (but definitely should work everywhere).
## Prerequisites
- Apache2, configured, up and running
- PHP 8.1 or higher
- Required PHP extensions: `php-json`, `php-curl`
Hint:
```
sudo apt update
sudo apt install apache2
sudo apt install php libapache2-mod-php
```
![screenshot](https://github.com/sensboston/uploader/assets/1036158/5428672d-7dcc-4d7a-a96f-dfe578618c75)