GithubHelp home page GithubHelp logo

mananag-1784 / accredita-docs Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 2.32 MB

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

License: MIT License

Python 41.80% CSS 8.25% JavaScript 29.58% HTML 20.37%
classification documentation-tool drive-api flask management-system python accredita

accredita-docs's Introduction

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. Installation
  4. Usage
  5. License
  6. 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

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 [email protected]
Visit my Website to check out my works

accredita-docs's People

Contributors

mananag-1784 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.