/PDF-Pixy

A simple PDF collaboration website built with python!

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

~ Visits ~

image

💎 PDF Pixy 💎

  • A simple pdf storage & collaboration website built with python!

💠Preview💠

🔹Sign-In🔹


image


🔹Sign-Up🔹


image


🔹Dashboard🔹


image


🔹Share🔹


image


💠Information💠

  • The website is built using python and flask.
  • The website uses a simple file sharing system with token based authentication ( for downloads ) and password hashing ( for storing passwords ).
  • The website uses a simple ip based authentication system for login.
  • A user is automatically logged in on other devices if he/she is already logged in on one device.
  • A user remains authenticated for a maximum of one day.
  • Users can share pdf files owned by them to other registered users.
  • Users can comment on both uploaded and shared pdf files.
  • User data is stored in json format in the following files under the asset folder: registered_users.json, signed_in_users.json, shared_files.json, tokens.json
  • registered_users.json: every login ip associated with its email is logged here along with the hashed password and the name of the user.
{
    "admin@gmail.com": {
        "name": "admin",
        "hash": "pbkdf2:sha256:600000$clfDlZm1RxDkzJ0I$4a27fd931369e2fb295fbe5885dc02c59081b53e8e78c71075739462b6a5dd9e",
        "ips": []
    }
}
  • signed_in_users.json: every signed in ip along with its email and the valid time of the session is stored here.
{
    "127.0.0.1": {
        "valid_time": 99999999999999999,
        "email": "admin@gmail.com"
    }
}
  • shared_files.json: every file uploaded by a user is stored here along with the token associated with the file.
{
    "admin@gmail.com": {
        "sample.pdf": "VhRHZuohDMFBowef",
        "dummy.pdf": "yaVhCkDbStSPDFIF"
    }
}
  • tokens.json: every token created is stored here along with the path of the file and the comments associated with the file.
{
    "VhRHZuohDMFBowef": {
        "path": "admin@gmail.com/sample.pdf",
        "comments": [
            {
                "file": "sample.pdf",
                "text": "very cool pdf",
                "user": "tmp-user1",
                "date": "3/Jul/23"
            }
        ]
    },
    "yaVhCkDbStSPDFIF": {
        "path": "admin@gmail.com/dummy.pdf",
        "comments": [
            {
                "file": "dummy.pdf",
                "text": "hope you get recruited X)",
                "user": "tmp-user1",
                "date": "3/Jul/23"
            },
            {
                "file": "dummy.pdf",
                "text": "all the best!",
                "user": "tmp-user2",
                "date": "3/Jul/23"
            }
        ]
    }
}