- Homepage & Navigation – Browse categories (books, tools, games) with featured items.
- Authentication – Sign up/login via email or Google OAuth, with account verification.
- Browse & Search – View item cards with title, image, and availability.
- Item Management – Add items with photos/details, manage availability & lending terms.
- Borrowing System – Request items, confirm terms, track requests & loan history.
- Lending Management – Review/approve requests, track items on loan, confirm returns.
- Notifications – Updates on requests & due date reminders.
To get started with OpenShelf, follow these steps:
-
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
-
Navigate to the project directory
cd OpenShelf -
Set up the database
- Ensure you have PostgreSQL installed and running.
- Create a new database named
openshelf. Change thePGPASSWORDif 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.pywith your PostgreSQL credentials.
-
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
- For the backend:
-
Run migrations
cd backend python manage.py makemigrations python manage.py migrate -
Run the development server
- For the backend:
cd backend python manage.py runserver - For the frontend:
cd frontend npm run dev
- For the backend:
-
Access the application
- Open your web browser and go to http://localhost:3000 for the frontend.
- The backend API will be available at http://localhost:8000/api/. More at OpenShelf API documentation.
This project is part of the freeCodeCamp 2025 Summer Hackathon, created by Team Lavender.