A lightweight, functional local network storage service built with:
- HTTP4S (Pure functional HTTP)
- Cats Effect (Resource-safe IO)
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 | ❌ | ✅ | ✅ | ✅ |
git clone https://github.com/your-org/pandora-homedrive.git
cd pandora-homedrive
sbt run
# Server starts on http://localhost:8080
- IDE : IntelliJ (or any JVM friendly environment)
- Language : Scala 3.3.5
- Version-control: git/GitHub
- Build : sbt
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
- We will use conventional commit messages (mandatory)
- Reference markdown files in the repo for formatting guidelines
- To be added in the repo README later
- 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
ordevelopment
branches unless they pass the build test
- Each microservice has its own branch
- Create feature branches named:
[microservice]_service-{feat}
Example:chatbot_service-respond
- Work on features in their respective branches
- 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
-
Main
-
Development
-
api_gateway
-
storage_service
-
storage_service-upload
-
storage_service-download
-
chatbot_service
-
analytics_service
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.