ozzysp / alphacopy Goto Github PK
View Code? Open in Web Editor NEWA Raspberry Pi BackUp application in Python GUI Open Source
License: GNU General Public License v3.0
A Raspberry Pi BackUp application in Python GUI Open Source
License: GNU General Public License v3.0
Back-End Road Map
- Init App
- First display shows "Greetings"
- Check connected devices on USB ports
- Second display shows "Loading devices''
- First block "IF" checks if SD and HDD has found if not scan ports again
- Third display shows "Found 2 Devices"
- Fourth display shows "Copy from SD"
- Fifth display shows "Destination HD"
- Sixth display shows "Make New Dir"
- Seventh display shows "Start Copy"
- Make new dir with sequential number on new folder
- Copy all from SD Card
- Check hash from each file to confirm integrity of files
- Eighth display shows "Progress Bar"
- Second block "IF" check if copy has reached successfully transfer to new directory
- Ninth display shows "Done Errors" if copy has failures
- Tenth display shows "Done" if copy has successful
- Eleventh display shows "Eject Devices"
- Twelfth display shows "Make New Copy (SD Card has ejected)"
- Thirteenth display shows "Scan New Devices" - Return to second item - Check connected devices on USB ports
Alphacopy/copy_function only works with texts. We need upgrade to copy any kind of files.
We need make a function that detects storage devices plugged in RPI USB ports.
Greetings, people!
I forked the project recently to develop a Docker image to smooth installation process and expand it for use in any machine that runs Docker. I talked with @ozzysp early before develop this and he pointed me a set of details of the project.
One of the features of the project that I acknowledged is that the source device of AlphaCopy is recognized by the condition to have less than 64GB of size (probably because SD card have less than it). So I am testing to make a copy between a source device with 1GB to a device with 65GB using VirtualBox (Ubuntu Mate 22.04 64-bit).
I don't know very much how to program in Python, but I was able to run the application inside a container through a custom Docker image. Here is a little demo how is the program running through Docker:
When we are able to run Docker Image in a container without failures. I will create a Pull Request to merge with the core of the project. In this PR, its planned to have a way to run the application in kiosk mode (that mode that allows you to run a single application without interaction with other programs of the system).
The issue I was facing to finish the image is some kind of permission problem in access the devices for copy (not the permission to see the devices, its showing the devices). But when I click in "copy", it doesn't work but there's no error message.
Any help is welcome with new ideas and with code if necessary. This is a new thread that I'm creating for discussion. Feel free to post new options about the feature. The branch of this feature of my fork is this: https://github.com/lvfxbr/AlphaCopy/tree/tmp-docker-image for those who wants to test the image, to test it, run the script run-docker.sh
to build the image in Dockerfile
and then run it, make sure you have Docker installed properly in your machine.
Thanks!
This function needs a verification if the new entries is a string.
Front-End RoadMap
Initial screen ("Greetings").
Second screen - Waiting result of scanning USB ports and identification of medias.
Third screen - Shows available SD cards and HD's.
Third screen B - Shows buttons ("SD to HD").
Third screen C - Browse and select destination folder.
Fourth screen - Shows button ("Start copy").
Script make a new directory on destination folder with number incremental in the original name from SD.
Fifth screen - Shows progress of copy ("Progress Bar").
Sixth screen - End process with success or show error in copy message.
Seventh screen - Shows button ("Eject SD?").
Eighth screen - Shows message ("SD ejected").
Ninth screen - Shows button ("New Copy?").
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.