Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Muhammadbugaje/NAMETS_Website/llms.txt

Use this file to discover all available pages before exploring further.

The Lost & Found module gives NAMETS members a centralised board for reporting items that have been lost or found on campus. Admins manage the listings, update statuses, and record who claimed an item and how to reach them. Items are automatically timestamped the moment they are marked as claimed.

Data Model

Item

The single model powering the entire module.
FieldTypeNotes
titleCharFieldShort item name, max 200 chars
descriptionTextFieldDetailed description to help identification
imageCloudinaryFieldOptional photo, stored in Cloudinary lostfound/ folder
statusCharFieldlost, found, or claimed (see below)
categoryCharFieldItem category (see below)
reported_atDateTimeFieldAuto-set when the record is first created
claimed_by_nameCharFieldFull name of the person who claimed the item (optional)
claimed_by_contactCharFieldPhone or email of the claimant (optional)
claimed_atDateTimeFieldAuto-set when status is first changed to claimed
is_activeBooleanFieldControls public visibility; set False to archive resolved items
Records are ordered by -reported_at (most recently reported first).

Status Choices

ValueDisplay LabelWhen to use
lostLostThe owner has lost the item and is looking for it
foundFoundSomeone found an item and turned it in / reported it
claimedClaimedThe item has been reunited with its owner or the rightful finder

Category Choices

ValueDisplay Label
electronicsElectronics
clothingClothing
watchesWatches
capsCaps
accessoriesAccessories
booksBooks
otherOther

Auto-setting claimed_at

The Item.save() method contains logic to auto-populate claimed_at the first time an item is marked as claimed:
def save(self, *args, **kwargs):
    if self.status == 'claimed' and not self.claimed_at:
        self.claimed_at = timezone.now()
    super().save(*args, **kwargs)
claimed_at is only set once — on the first save where status == 'claimed'. Subsequent saves on a claimed item will not overwrite the original timestamp.

URL Routes

All routes are under the lostfound app namespace with the URL prefix /lostfound/.
NameURL PatternViewDescription
list/lostfound/item_listFilterable listing of active items
detail/lostfound/item/<int:pk>/item_detailSingle item details and claimant info

Item Lifecycle Workflow

1

Item is reported

A member reports a lost or found item to an admin. The admin creates a new Item record in the Django admin panel, setting:
  • title and description with enough detail for identification
  • category to aid filtering
  • status to either lost or found
  • An optional image from Cloudinary
  • is_active = True to make it publicly visible
2

Item appears on the public board

Active items (where is_active = True) are visible at /lostfound/. Members can browse by status and category to see if their item has been found or to identify something they found.
3

Owner or finder comes forward

A member contacts the admin to claim the item. The admin verifies identity and ownership before proceeding.
4

Admin marks the item as claimed

In the Django admin, the admin:
  1. Sets status = claimed.
  2. Fills in claimed_by_name with the claimant’s full name.
  3. Fills in claimed_by_contact with a phone number or email.
  4. Saves the record — claimed_at is automatically set to the current timestamp.
5

Admin archives the item

Once resolved, set is_active = False to hide the item from the public listing without deleting the record. The full history (including claimant contact info) is retained in the admin for reference.
claimed_by_name and claimed_by_contact are stored in plain text. Ensure this data is handled in line with the association’s privacy practices and only shared with relevant parties.

Lost Items

Items with status = 'lost' are posted by members who have misplaced belongings. The listing helps others identify and return found items.

Found Items

Items with status = 'found' are posted when someone picks up an unattended item. The owner can come forward and claim it through the admin.

Build docs developers (and LLMs) love