The Community module shapes how NAMETS presents itself and engages its members. It manages leadership structures (patrons and executives by year), the developer credits page, a public Q&A system, the About page, tutor and membership applications controlled by site-wide toggles, contact information, social media links, and downloadable association documents.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.
Data Models
Patron
Patron
Faculty or institutional supporters of NAMETS.
Ordered by
| Field | Type | Notes |
|---|---|---|
name | CharField | Full name |
slug | SlugField | Auto-generated from name |
designation | CharField | e.g., HOD Mechanical Engineering |
bio | TextField | Background information |
image | CloudinaryField | Stored in patrons/ |
hierarchy_order | PositiveIntegerField | Lower numbers appear first |
is_active | BooleanField | Controls public visibility |
email | EmailField | Used for admin notifications (optional) |
receive_notifications | BooleanField | Opt-in to system notifications |
hierarchy_order then name. Each patron has a detail page at /community/patrons/<slug>/.ExecutiveYear & Executive
ExecutiveYear & Executive
ExecutiveYear — groups executives by their active academic session.
Executive — an individual officer in a specific year.
| Field | Type | Notes |
|---|---|---|
year_label | CharField | e.g., 2025/2026 |
description | TextField | Optional notes about this leadership cycle |
display_order | PositiveIntegerField | Most recent year should have the lowest value |
is_active | BooleanField | Shows or hides the entire year’s team |
| Field | Type | Notes |
|---|---|---|
name | CharField | Full name |
role | CharField | e.g., President, PRO |
photo | CloudinaryField | Stored in executives/ |
contribution_summary | TextField | Notable achievements in their tenure |
year | ForeignKey | Links to ExecutiveYear |
display_order | PositiveIntegerField | Position within the year’s listing |
is_active | BooleanField | Controls individual visibility |
Developer
Developer
Credits the engineering team that built the NAMETS website.
| Field | Type | Notes |
|---|---|---|
name | CharField | Full name |
role | CharField | e.g., Backend Developer |
bio | TextField | Short introduction |
photo | CloudinaryField | Stored in developers/ |
github_link | URLField | GitHub profile URL |
linkedin_link | URLField | LinkedIn profile URL |
display_order | PositiveIntegerField | Manual sort order |
is_active | BooleanField | Show/hide from developers page |
Question & Answer
Question & Answer
A public Q&A system where members submit questions and admins provide answers.Question
Answer
Questions are only shown publicly after an admin sets
| Field | Type | Notes |
|---|---|---|
name | CharField | Submitter’s name |
email | EmailField | Optional contact |
question_text | TextField | The question content |
category | CharField | Free-text label (e.g., Fiqh, Academics) |
is_public | BooleanField | Admin must set True to show publicly |
submitted_at | DateTimeField | Auto-set on submission |
| Field | Type | Notes |
|---|---|---|
question | OneToOneField | Links to the parent Question |
answer_text | TextField | Full response |
responded_by | ForeignKey→User | The admin who wrote the answer |
responded_at | DateTimeField | Auto-set when the answer is saved |
is_public = True.AboutPage
AboutPage
A singleton content record for the
Only one
/community/about/ page.| Field | Type | Notes |
|---|---|---|
mission_statement | TextField | NAMETS mission text |
vision_statement | TextField | NAMETS vision text |
history | TextField | Narrative history of the association |
established_year | CharField | e.g., 1992 |
AboutPage record should exist. Edit it in the admin to update the public About page.TutorApplication
TutorApplication
An application from a student who wants to become a NAMETS tutor.
Applications are only accepted when
| Field | Type | Notes |
|---|---|---|
name | CharField | Applicant’s full name |
reg_number | CharField | University matric / student ID |
department | CharField | Faculty department |
cgpa | DecimalField | Cumulative GPA (optional) |
email | EmailField | Unique per application |
phone | CharField | Contact number |
campus_residence | BooleanField | Does the applicant live on campus? |
strong_courses | TextField | Courses the applicant excels in |
preferred_course | CharField | Course they wish to tutor |
comfort_level | IntegerField | Self-rated teaching comfort (1–5) |
teaching_skill_rating | IntegerField | Optional supplementary skill rating (1–5) |
recommendations | TextField | Names of lecturers or class reps |
past_experience | TextField | Previous tutoring history |
availability | TextField | Available days/times |
has_materials | BooleanField | Applicant already has teaching materials |
collaborate_on_materials | BooleanField | Open to co-creating standard materials |
is_processed | BooleanField | Admin marks True after reviewing |
submitted_at | DateTimeField | Auto-set on submission |
SiteSettings.tutor_applications_open = True.MembershipApplication
MembershipApplication
An application to become a formal NAMETS member.
Applications are only accepted when
| Field | Type | Notes |
|---|---|---|
name | CharField | Full name |
email | EmailField | Unique per application |
phone | CharField | Contact number |
gender | CharField | M, F, or O |
reg_number | CharField | Student matric number |
department | CharField | Faculty department |
campus_residence | BooleanField | Lives on campus |
islamic_knowledge | CharField | beginner, intermediate, or advanced |
quran_memorization | CharField | none, some, half, or whole |
skills | M2M → Skill | Select one or more from the Skill model |
other_skill | CharField | Free-text if skill not in list |
how_work_with_people | TextField | Short personal statement |
recommendations | TextField | Referees |
is_processed | BooleanField | Admin marks True after review |
SiteSettings.membership_applications_open = True.Strong suit choices for Skill model:| Value | Display Label |
|---|---|
public_speaking | Public Speaking |
tech | Tech (Programming, Design) |
graphic_design | Graphic Design |
programming | Programming |
islamiya_tutor | Islamiya Tutor |
compassion | Compassion/Helping Others |
other | Other |
ContactPhone, SocialMediaLink & NAMETSDocument
ContactPhone, SocialMediaLink & NAMETSDocument
URL Routes
All routes are under thecommunity app namespace.
| Name | URL Pattern | Description |
|---|---|---|
patron_list | /community/patrons/ | All active patrons by hierarchy order |
patron_detail | /community/patrons/<slug>/ | Individual patron profile |
executive_list | /community/executives/ | Executives grouped by year |
question_list | /community/questions/ | Public Q&A listing |
ask_question | /community/ask/ | Submit a new question |
about | /community/about/ | Mission, vision, history, documents |
developer_list | /community/developers/ | Website developer credits |
tutor_apply | /community/apply/tutor/ | Tutor application form |
membership_apply | /community/apply/membership/ | Membership application form |
Application Workflows
Tutor Applications
Admin opens the application window
Set
SiteSettings.tutor_applications_open = True in the Django admin. When False, visiting /community/apply/tutor/ shows a closed-application page.Student submits the form
The applicant fills in their academic background, preferred course, availability, and self-rated comfort level (1–5).
Membership Applications
Admin opens the application window
Set
SiteSettings.membership_applications_open = True. When False, the membership form is replaced with a closed-application notice.Student submits the form
The applicant provides personal details, Islamic background (knowledge level and Quran memorisation status), and selects their skills from the
Skill model.About Page Content Management
TheAboutPage model is a singleton. To update the About page:
- In the Django admin, navigate to Community → About Page.
- Edit
mission_statement,vision_statement,history, andestablished_year. - Save — changes are immediately reflected at
/community/about/.
NAMETSDocument. Upload files (constitution, reports) in the admin under Community → NAMETS Documents and set is_active = True.