Ximedes secure file hosting and URL shortener Help

Project Overview

Purpose and Goals

This project provides Ximedes employees with an easy and reliable way to share files with external parties—such as customers and suppliers. By leveraging AWS’s serverless capabilities, the solution offers a fully cloud-hosted environment for file sharing and URL shortening.

Platform Features:

  • File Sharing: A streamlined interface for internal teams to securely upload and share files.

  • URL Shortening: A service that allows Ximedes employees to create shortened versions of any URL, offering a convenient tool for sharing and managing links.

Download the project specification

Initiation and Team

This project was initiated by Ximedes as part of an internship program designed to explore new, practical implementations of cloud technologies within a short timeframe. The project duration was set to four months, intended as a test case for potential future use.

Project Contributors:

  • Joris Portegies Zwart – CEO of Ximedes, originator of the project concept and author of the initial project specifications.

  • Ognjen Milićević – Intern and project developer, responsible for implementing core functionalities and learning best practices.

  • Vladimir Bukinac – Mentor, guiding the intern through the development process and overseeing architectural decisions.

  • Ferry Tuijn – Senior Technical Manager at Ximedes, involved in the project development process, providing valuable suggestions and approach ideas through regular meetings.

Future Functionalities

Several additional functionalities are planned for future development, including:

  • User Management: Access to the /upload and /shorten pages will be restricted to Ximedes employees only. This restriction can be achieved by requiring users to be connected through the Ximedes VPN, ensuring that only authorized personnel can access these functionalities.

  • Modernization and Optimization:

    • AWS SDK Upgrade: Transitioning from AWS SDK v2 to v3 in the website's JavaScript code. SDK v3 is modular, includes built-in support for S3 checksum verification, and introduces support for multipart file uploads. This enables the efficient and reliable uploading of large files.

    • Framework and Code Modernization: Rewriting the front end with a modern frontend framework (e.g. React) and TypeScript to allow for better modularity, maintainability, and security. Including localization and translations in the build process will enhance user accessibility and usability.

    • Lambda Function Improvement: Migrating Lambda function code from JavaScript to TypeScript for improved type safety and maintainability. The build process will then transpile the TypeScript code to JavaScript for deployment.

  • Open File Uploads: Allow Ximedes employees to upload files that do not require a password. These files can be downloaded directly using the provided download link without additional authentication.

  • File Details via Email: Provide file creators with detailed information about their uploaded or shortened files via email. This includes sharing sensitive details such as passwords through URLs generated with PrivateBin, ensuring secure and private communication.

  • Enhanced File Access Control: Enable uploaders to specify the email addresses of intended downloaders when uploading a file. When a downloader accesses the download URL and provides the correct password, an OTP or a new URL will be sent to their inbox, granting them access to the file. This ensures that only recipients with the URL, the password, and access to their email inbox can download the file.

  • Slack Integration: Introduce Slack commands and/or forms to enable upload and URL shortening functionalities directly through Slack. This feature will streamline the process for Ximedes employees by integrating the tools into their existing communication platform.

Last modified: 09 January 2025