User Manual

Login Registration

Registration is performed through the form:

If the details are correct, a confirmation email is sent to the email specified by the User.
Note: The User will not be able to login until the email address has been verified (i.e. until the User clicks on the link on the email).

The User can reset the password through the apposite form. Resetting will send an email to the User with a link that can be used in order to reset the password.


File Upload

The file upload process can start at the homepage through the button on top of the video, or from the profile page from the button on the side-navigation bar or from any other page from the button on the top navigation bar:

Files supported for upload are all image formats, Microsoft Word documents and PDFs. Microsoft Word documents are converted to PDFs and stored as such on the server, no copy of the original MS version is stored and, therefore, it cannot be retrieved from the user (the systems does not aim to provide cloud storage). File size limit is 10 MB per document (i.e. files with size bigger than 10MB will not be uploaded). Uploading is possible either through multiple Drag&Drop or through file-manager window (this can be accessed by clicking on the draggable zone). Login is required in order to proceed to the payment section.

From the payment page only Paypal payment is currently supported. Please select the correct option. Paypal login and confirmation are required in order to further progress.

Upon successful payment the User is redirected to the profile page.


Profile Page

Download, printing and sending certification email functionalities are available through shortcuts from the profile page.

When clicking on the VIEW button for a particular document, the preview page is opened and from there the User can delete the document. (Note: deletion is permanent and cannot be undone).

From the profile page the User can reorder the protected documents via the available option:

Furthermore, the User can search for a specific document or filter documents containing some word through the Search bar:


Invite a Friend

The User can send an invitation to join CreateSafe to a friend through the apposite functionality available from the profile page side navigation bar. Just the email is required and the email is sent automatically:


Cease And Desist

It is possible to access the Cease And Desist functionality from the side navigation bar from the profile page. The User has to insert the name of the person infringing the copyright and select the protected document that is being illegally copied.

The User can then decide to download, print or email the automatically created Cease And Desist letter.

Note: the letter comes with a Copyright Infringement Settlement Agreement attachment that is not available on the preview. When downloaded or printed, both the letter and the attachment are served as PDFs. When directly emailed to the infringer, the content of the email is the Cease And Desist letter and the attachment is attached via PDF. Emailing also attach a copy of the watermarked document, downloading or printing requires the User to manually download or print the watermarked document from his/her profile page (if he/she wishes to do so).


System Manual

The project follows Symfony architecture:


app/
The application configuration, templates and translations.
bin/
Executable files (e.g. bin/console).
src/
The project's PHP code.
tests/
Automatic tests (e.g. Unit tests).
var/
Generated files (cache, logs, etc.).
vendor/
The third-party dependencies.
web/
The web root directory.

In particular, under src, there are the AppBundle (where most classes are contained), and UserBundle (child of FOSUserBundle, in order to overwrite the ProfileController):


AppBundle/

    Controller/

        DefaultController.php — Handles requests for homepage and static pages

        PaymentController.php — Handles requests for payment page

    Entity/

        Payment.php — Represent a Payment entity, required by PayumBundle

        PaymentToken.php — Represent a PaymentToken entity, required by PayumBundle

        ProtectedFile.php — Represent a ProtectedFile entity (represents files as saved in the database. Used by VichUploaderBundler)

        User.php — Represent a User entity

    EventListener/

        UploadListener.php — Event listener that listen for file uploads. Used for file renaming

    Form/

        ProfileFType.php — Used for the profile form overwriting (updating personal details)

        RegistrationFType.php — Used for the registration form overwriting

    Services/

        EmailSender.php — Used to send certification email.

        HashingRegistrationNumber.php — Used to generate registration numbers

        RegistrationNumberCreator.php — Interface for decoupling

        UserDirectoryNamer.php — Directory namer for VichUploaderBundle

        WaterMark.php — Service used for watermarking images and PDFs and Word to PDF conversion

    Tests/ — contains all tests classes

UserBundle/

    Controller/

        ProfileController.php— handles all profile page functionalities (including Cease and Desist). Extends FOSUser ProfileController

    CreateSafeUserBundle — child of FOSUserBundle


All templates are located in app/Resources, all assets are located in the web/ folder.


Dependencies: for a full list of the project dependencies please refer to the composer.json file.


Simony has a very detailed guide for deployment. Deployment notes:

  • Set upload_max_filesize to 10MB in the PHP settings. This is to match the file size limit set by Dropzone. If needed to be reduced or increased, it can be changed in the javascript in base.html.twig (app/Resources/views) where the dropzone settings are specified.
  • Change settings for Payum Bundle in config.yml under “paypal_express_checkout_nvp” with Business account details and set “sandbox” to false.
  • In order to clear the Orphanage from old files not uploaded it is recommended to periodically run “php app/console oneup:uploader:clear-orphans” either manually or automatically. This will clear all files older than the “maxage" value in your configuration. (please refer to the OneUpUploadeBundle documentation)
  • As mentioned already, the conversion from Microsoft Word documents to PDFs is executed making use of OpenOffice. The packet should be installed on the root of the server in order for the functionality to work and the code in Watermark.php should be updated accordingly.

Future Developments

Thanks to Symfony architecture, the website is highly scalable and extensions can be built on top of the work done so far. We identified a few directions to follow:

  • Even though we implemented all Must requirements identified during the first term, some Could and Would were not implemented and those are a good start for further improvements. These include:
    • Implement uploads of files from Dropbox and Google Drive.
    • Implement different payment methods.
    • Extend copyright protection to Video and Audio files.
    • Optimise the GUI for mobile rendering.
  • The API part of the project was dropped as discussed in the Project Summary in the Background section. Nevertheless it could be easily implemented on top of the website we developed making use of the tools we researched for during the first term.
  • Final deployment on a fully working server. More testing is suggested, before a final release.

Forum

Use our community Forum to discuss the project, leave feedback and talk about future developments: