Skip to content

DEVUCP/PandoraDrive-server

Repository files navigation

Pandora Homedrive API

Static Badge License: MIT

A lightweight, functional local network storage service built with:

  • HTTP4S (Pure functional HTTP)
  • Cats Effect (Resource-safe IO)

Feature List & Comparison

Pandora HomeDrive Features
File upload/download
Folder organization
Local network storage
"Know Your Files" trivia game
Data encryption
Local data storage
Storage visualization
File type statistics
Feature Pandora HomeDrive Google Drive Dropbox OneDrive
File upload/download
Folder organization
Local network sync
Built-in file quiz game
End-to-end encryption❌*❌*❌*
Local-only storage option
Storage analytics
Free basic storage
Real-time collaboration
Mobile app support

Quick Start

git clone https://github.com/your-org/pandora-homedrive.git
cd pandora-homedrive
sbt run

# Server starts on http://localhost:8080

Development

Software/tools used

  • IDE : IntelliJ (or any JVM friendly environment)
  • Language : Scala 3.3.5
  • Version-control: git/GitHub
  • Build : sbt

System Architecture

We will be using a Microservice architecture for our app. This means each team member will work on a separate, small server. This structure is chosen for its ease of work delegation and isolation.

  • Microservices will communicate with each other via RESTful APIs
  • Users will interact with the system through an API Gateway, which routes requests to the appropriate microservices

Version Control (Git)

Commit Messages

  • We will use conventional commit messages (mandatory)
  • Reference markdown files in the repo for formatting guidelines

Code Conventions

  • To be added in the repo README later

GitHub Workflow

GitHub Actions

  • Automatic build tests run after pushing or merging a pull request
    • ✅ Green checkmark = passed
    • ❌ Red cross = failed
  • No pull requests will be accepted into main or development branches unless they pass the build test

Contribution Guidelines

Branching Strategy

  1. Each microservice has its own branch
  2. Create feature branches named: [microservice]_service-{feat}
    Example: chatbot_service-respond
  3. Work on features in their respective branches
  4. When feature is complete:
    • Push changes to remote feature branch
    • Initiate pull request from feature branch → microservice branch
    • Resolve any conflicts
    • Ensure features pass build test (mandatory for microservice → development)
    • Merge with conventional commit message
    • Delete the feature branch after successful merge

Example Branch Structure During Development:

  • Main

  • Development

  • api_gateway

  • storage_service

  • storage_service-upload

  • storage_service-download

  • chatbot_service

  • analytics_service

Team Responsibilities

Team Member Primary Responsibilities
omardoescode Storage microservices
moha09-coder Middleware and security services
DEVUCP Microservice APIs, API gateway, frontend
marwanm-dev Analytics microservice, assists Chatbot
Abdelrahman Amr Chatbot microservice

Note: All members will need to contribute to backend (Scala) development as it's mandatory for the project.

About

Pandora is local network storage drive

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Contributors 5