Skip to content

Latest commit

 

History

History
91 lines (84 loc) · 3.64 KB

File metadata and controls

91 lines (84 loc) · 3.64 KB

Atheneum

Overview

Atheneum is an interactive library management system designed to streamline library operations and provide personalized book recommendations. It features a robust Django backend for managing library data, users, and an integrated machine learning model for book suggestions. The frontend is built with React and styled using Material UI, offering a clean and responsive user interface for managing library resources and user interactions.

Tech Stack

  • Backend: Python, Django (v3.1), Django REST Framework, Pandas, Scikit-learn, Joblib, Gunicorn
  • Frontend: JavaScript, React, Redux, React Router DOM, Axios, Material UI
  • Database: SQLite (for development), PostgreSQL (implied)

Features

  • User Authentication: Secure user registration, login, and password management.
  • Library Management: Functionality for tracking book inventory, issuing, and returning books.
  • Book Recommendations: An integrated machine learning model (IRISRandomForestClassifier.joblib) provides personalized book recommendations.
  • Subscription/Club Management: Components suggest features for managing user subscriptions or club memberships.

Project Structure

.
├── .gitattributes
├── .gitignore
├── Pipfile
├── Pipfile.lock
├── README.md
├── Atheneum/
│   ├── db.sqlite3
│   ├── manage.py
│   ├── frontend/             # React frontend application
│   │   ├── package.json
│   │   └── src/
│   │       ├── App.js
│   │       ├── index.js
│   │       ├── Action/
│   │       ├── components/
│   │       ├── layouts/
│   │       └── Reducer/
│   ├── library/              # Django app for library operations
│   │   ├── models.py
│   │   └── views.py
│   ├── mainapp/              # Django project settings and core
│   │   ├── settings.py
│   │   └── urls.py
│   ├── prediction/           # Django app for ML model integration
│   │   ├── models.py
│   │   ├── views.py
│   │   └── mlmodel/          # ML model files
│   └── users/                # Django app for user management
│       ├── models.py
│       ├── views.py
│       └── serializers.py
└── Extras/                   # Auxiliary project files

Getting Started

Prerequisites

  • Python 3.7
  • NPM

Local Setup

  1. Clone the repository.
  2. Install pipenv:
    pip install pipenv
  3. Set up Python environment: Navigate to the project root directory and activate the virtual environment:
    pipenv shell
    This will install Python dependencies defined in Pipfile.
  4. Download external ML files:
    • Download SVD.joblib from this link and place it in Atheneum/prediction/mlmodel/.
    • Download book_summaries1.csv and place it in Atheneum/prediction/Data/.
  5. Set up Frontend: Navigate to the frontend directory and install Node.js dependencies:
    cd Atheneum/frontend/
    npm install
  6. Build Frontend:
    npm run build
  7. Run Django Development Server: Navigate back to the project root directory (Atheneum/) and start the server:
    python manage.py runserver

Additional Info

This project utilizes Material UI for a consistent and modern user interface, enhancing the user experience for library management tasks and exploring book recommendations.