Skip to content

nhcarrigan-2025-hackathon/OpenShelf

Repository files navigation

OpenShelf

React Vite TailwindCSS Django PostgreSQL

A community-driven digital lending library for books, tools, and games.

Features

  1. Homepage & Navigation – Browse categories (books, tools, games) with featured items.
  2. Authentication – Sign up/login via email or Google OAuth, with account verification.
  3. Browse & Search – View item cards with title, image, and availability.
  4. Item Management – Add items with photos/details, manage availability & lending terms.
  5. Borrowing System – Request items, confirm terms, track requests & loan history.
  6. Lending Management – Review/approve requests, track items on loan, confirm returns.
  7. Notifications – Updates on requests & due date reminders.

Getting Started

To get started with OpenShelf, follow these steps:

  1. Clone the repository Make sure you have the proper access to the repository and your SSH keys are set up correctly.

    git clone [email protected]:freeCodeCamp-2025-Summer-Hackathon/OpenShelf.git
  2. Navigate to the project directory

    cd OpenShelf
  3. Set up the database

    • Ensure you have PostgreSQL installed and running.
    • Create a new database named openshelf. Change the PGPASSWORD if your PostgreSQL user has a different password.
    PGPASSWORD=postgres psql -h localhost -p 5432 -U postgres -c "CREATE DATABASE openshelf;" 2>/dev/null
    • Check if the database is properly created:
    PGPASSWORD=postgres psql -h localhost -p 5432 -U postgres -d openshelf
    • Update the database settings in backend/backend/settings.py with your PostgreSQL credentials.
  4. Install dependencies

    • For the backend:
      cd backend
      # Create virtual environment (not necessary for Windows)
      python -m venv venv
      source venv/bin/activate # Activate virtual environment
      # Install dependencies
      pip install -r requirements.txt
    • For the frontend:
      cd frontend
      npm install
  5. Run migrations

    cd backend
    python manage.py makemigrations
    python manage.py migrate
  6. Run the development server

    • For the backend:
      cd backend
      python manage.py runserver
    • For the frontend:
      cd frontend
      npm run dev
  7. Access the application


This project is part of the freeCodeCamp 2025 Summer Hackathon, created by Team Lavender.

About

Repository for the lavender-query team's work.

Resources

Stars

Watchers

Forks

Contributors