/Accredita-Docs

This web application focuses on efficient document classification and retrieval through a user-friendly interface for college departments. It seamlessly integrates with existing storage solutions by using Google Drive API, ensuring data security

Primary LanguagePythonMIT LicenseMIT

Accredita-Docs

This web application focuses on efficient document classification and retrieval through a user-friendly interface for college departments. It seamlessly integrates with existing storage solutions by using Google Drive API, ensuring data security and reliability.

Table of Content

  1. Features
  2. Modules and Working
  3. Database Structure
  4. Installation
  5. Usage
  6. License
  7. Contact

Features

  • User management : Manage department teachers and access to various roles
  • Administrative updates : Updating and managing users, files, folders, etc.
  • Document Classification and Storage : Stores and classifies files in an organised manner that specify files content
  • File Management : Upload and track activities of all files
  • Serach and Retrieval : Filters and classifies files based on criteria's

Modules and Working

User Management

Each user is associated with a department under which they perform all tasks. Users are assigned one of the following four roles :

  • Owner : Utilizes its Google Drive spcae for the Department files. (Same level as the admin)
  • Admin : Manages the department, control access, oversees folders and files, etc.
  • Editor : Upload, Update, and view files.
  • Viewer : View and Classify files.
Permission Owner Admin Editor Viewer
Managers folders within the department
Controls access for other teachers
Updates criterias and classification codes
Uploads and Update files
Track activity of all files
Views and Classify files

Document Classification and Storage

  • Each file is assciated with Classification Codes (4-5 letters) that specify the file's content (eg. SYLR, ALCO)
  • Files can be uploaded to oonly those folders added by the admin in the department
  • Folders can be associated with classification codes that specify the type of files inside the folder
  • Creates criteria associated with classification codes, which are created under specific accreditations (e.g., NAAC, NBA).

File Management

  • Filters and classifies files based on folder, criteria, classification code, etc.
  • Uploads multiple files to Google Drive in a specific format.
  • Tracks activities for the last 7 days.
  • Update, Remane, Move and Trash Files
  • File Format : yyyymmdd_ClassificationCode_name.extension
    In case of files associated with multiple classification code seperate the code using a comma (,)
    Example : 20240612_SYLR_Syllabus for Students.doc 20240612_SYLR,LRNG_Syllabus for Students.doc

Administrative Updates

  • Update, create and modify list of folders, categories and criterias
  • Manage access roles to the users of the department
  • Keep track of all the activity of files

Database Structure

Database Schema Diagram

Installation

  1. Clone the repository:

    https://github.com/MananAg-1784/Accredita-Docs.git
  2. Install the required dependencies using pip and the provided requirements file:

    pip install -r requirements.txt
    or
    pip3 install -r requirements.txt

    This command will install all the necessary Python packages specified in the requirements.txt file.

  3. Change the Api Secret Key in the config.py file

    api_secret = 'Accredita-Doc'
  4. Update the required data in the setup.json file :

    {
        "timezone":"Asia/Kolkata",
        "domain":"gamil.com",
        "auth_redirect":"http://localhost:5000/callback",
        "admin_email" : "Aministrator email for the app",
        "cloud_email": "Email used to create the OAuth Creds",
        "creds": 
        {
            "web" : "The credentials data from Google Cloud OAuth 2.0 Client IDs"
        }
    }

    To get the credentials for OAuth (Login using gmail) follow the following steps:

    • Go to google Cloud Services and Create a new Project
    • Enable : Drive API, Peoples API, Drive Activity API
    • Create a OAuth Client ID :
      Application Type : Web Application
      Add Authorized redirect URIs (NOTE: include /callback uri)
  5. Run the setup.py to update the data into the database.

    python -m setup

     1. Update data from setup.json
     2. Clear the database
     Choose the option :

Usage

To execute the program in localhost, add these two lines in the run.py file :

# After initialising the app
app.config["DEBUG"] = True
os.environ["OAUTHLIB_INSECURE_TRANSPORT"] = "1"

To change the port of the server, replace the port in WSGIerver in run.py

WSGIServer(('0.0.0.0', _port_ ), app, log=None).serve_forever()

Open the terminal in the same directory as the run.py

python -m run   # In Windows
or
gunicorn -k gevent -w 1 run:app   # In Ubuntu

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Contact

For any questions or feedback, please contact at mananagarwal1784@gmail.com
Visit my Website to check out my works