kmeyerhofer / photo-share Goto Github PK
View Code? Open in Web Editor NEWAn encrypted photo sharing service.
Home Page: https://filencrypt.site
An encrypted photo sharing service.
Home Page: https://filencrypt.site
Set the location of where we are to store our files on the server with an environmental variable.
E.g. PHOTO_SHARE_DIR=/home/photo-share/files
Allows us to more easily controll where the files are to be saved on the server when deployed.
use SASS
When a user clicks on an image, go into a "modal" type mode with Left and Right arrows to scroll to the next images.
Use information loaded from MongoDB to send files to the client. Utilize Meteor-Files
package for downloading.
The files will then be decrypted in a future issue.
A user can add a blank comment on a file.
Throw an error when both the author
and comment
are blank.
The action of a user uploading one/many files needs to transfer the files to the photo-share/tmp
folder (for now).
Once the files are uploaded and displayed, the randomly generated page could have areas for sharing the link to others, such as email, and possible social media integration. We could have the application email entered addresses (separated by a comma) with the link to the URL.
Display to the user when the application is loading information. Essentially, keep the user in the loop of what's going on during the application.
Ideas for the things It could display:
Encrypting files...
/ Decrypting files...
Uploading files...
/ Downloading files...
It could occur on these instances of the application:
Limit the filesize of each file uploaded to a max of 5MB? 10MB? Something reasonable for a larger picture/gif.
If the password is incorrect for decryption, there is an error thrown in extractMIMEType complaining mime is null
.
each image file can have multiple anonymous or named comments.
In imports/components/upload.js
, the method saveFileToDB
should be called with a Meteor.call('function')
instead of client-side database writing, to protect the database.
Standardize way to display or show error messages, mostly from Meteor Method callbacks.
.png
, .jpg
/.jpeg
, .gif
, etc... we'll render it as an <Image />
component.mkv
, .mov
, .webm
, .mp4
, etc... we'll render it as a <Video />
component.txt
, .text
, we'll render it as a <Text />
componentYou get the idea. Video might be out of the question for now, due to storage limits...
A download button for each file AND for all files (which zips all files).
Utilize the escape(input)
method from this package to escape character from user comments.
Handle the case where a user enters the incorrect decryption phrase. There is an error displaying currently when this happens.
InvalidCharacterError: String contains an invalid character
from file.js:
, base64StringToBlob()
If you try to access /testingurl
or any other URl not in the database, the password decryption form shows up but nothing displays if you enter a password.
We need some sort of error handling & re-routing back to the root path.
Line 84 of fileList.js
could have the URL passed in from the parent Router
component.
Write tests to ensure proper code functionality.
Test:
We need a dynamic URL router which can check the database for the url
key then loading up any files to the client.
If no string is found, return a 404 response code.
All comments are loaded and displayed to the user while the decryption process runs, even if the password is incorrect. We need a way to render the comments only after the files have been decrypted.
The styling for the file limitation text (* Images only) displays funny on small screens. Make so it doesn't overflow the parent flexbox.
create a master download button that will zip all of the files together
When a valid URL with files is accessed, decryption needs to take place on the client side to then view the files.
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.