Community OS ยท Operations Guide

TNCSC Handbook

How the Tamil Nadu Cultural Society of Canada configures, runs, and troubleshoots its own system โ€” written for board members and volunteers, not developers.

Membership
Events
School
Classifieds
Benefits
Interac Payments
Website
Settings
01

Understanding the system

Once you log in, you'll see an app switcher โ€” a grid of icons, one per area of the system. Each app is where a specific part of TNCSC's work lives:

Membership

Members, tiers/pricing, renewals

Events

Creating events, ticketing, check-in

School

Tamil Class terms, classes, attendance

Classifieds

The member board and its moderation queue

Benefits

Benefit centres and member perks

Interac Payments

Confirming e-Transfer payments

Website

The public website โ€” pages, menus, content

Settings

Branding, org configuration, user accounts

If an app is missing

It's almost always a permissions issue, not a broken install. See User roles and Troubleshooting below.

Two databases exist during development/testing (tncsc_migration_test, tncsc_site) โ€” your technical contact will tell you which one is live production once you go live. Everything in this guide applies the same way regardless of which database you're in.

02

User roles โ€” who can do what

Go to SettingsUsers & CompaniesUsers, click a person's name, and under their groups you'll find TNCSC Roles. Check the box for the role that matches what they do:

RoleGrants
Board AdminEverything โ€” membership, school, classifieds, benefits, events, and Interac payments. Give this only to whoever runs the system day-to-day.
TreasurerConfirms Interac payments and has invoicing access.
Events OfficerCreates/manages events and staffs check-in.
School CoordinatorManages Tamil Class terms, classes, students, enrollment.
TeacherCan only take attendance for their own classes.
Classifieds ModeratorReviews and publishes classified listings.

A person can hold more than one role โ€” e.g. someone can be both School Coordinator and Teacher. Members themselves don't need a role checked here at all: once someone is a member, they get their own self-service member portal automatically (see Membership) โ€” separate from these backend roles, and it doesn't require a staff login.

Adding a new staff or volunteer account

  1. Go to SettingsUsers & CompaniesUsersNew
  2. Fill in their name and email, then save.
  3. Check the role(s) above for them. They'll get an email to set their own password.
03

Branding: colours, logo, fonts

SettingsGeneral SettingsTheme (left-hand tab list).

  • Primary / Secondary / Accent Colour โ€” enter a colour as a hex code (e.g. #05091E). These apply instantly across the website, the member portal, and PDF documents like the membership card โ€” no other setting to touch.
  • Logo โ€” upload the image file to use in the site header and on generated PDFs. If left blank, the company logo (SettingsGeneral SettingsCompanies) is used instead.
  • Heading Font / Body Font โ€” enter a font name, e.g. Inter, sans-serif. Needs to be a font available to browsers โ€” ask your technical contact before entering something unusual.

Click Save at the top of the page after any change.

04

Membership

Settings

SettingsGeneral SettingsMembership

  • Organization Name โ€” used in renewal emails and the membership card.
  • Member ID Format โ€” the pattern new member IDs follow, e.g. TNCSC-{year}-{seq} produces TNCSC-2026-014. Don't change the placeholders unless your technical contact confirms it's safe โ€” they drive the auto-numbering.
  • Renewal Reminder Offsets โ€” comma-separated days-before-expiry to send reminders, e.g. 30,14,7.
  • Member Portal โ€” toggle the self-service portal on or off site-wide.

Membership tiers and pricing

MembershipConfigurationMembership Tiers

Each row is a plan (Individual, Family, Student, Senior, Life, or whatever TNCSC offers). To change a price, open the tier and edit Price โ€” this is the only place pricing lives. To add a new tier, click New and fill in:

  • Name โ€” shown to members, e.g. "Corporate Sponsor"
  • Code โ€” a short internal code, e.g. CORP (no spaces)
  • Price and Currency
  • Period โ€” Annual, One-Time, or Monthly
  • Sequence โ€” controls display order (lower numbers show first)

Deactivating a tier (rather than deleting it) keeps historical records intact for members who already hold it โ€” use the tier's kebab (โ‹ฎ) menu โ†’ Archive, instead of deleting.

Day-to-day membership work

  • MembershipMembers โ€” the full member list. Open a member to see their tier, status, and expiry date.
  • Renewal reminders and draft renewal invoices are generated automatically by a daily background job โ€” nothing to run manually. What you do need to do periodically: check InvoicingCustomer Invoices for draft renewal invoices and confirm/send them once payment is expected.
  • Each member can view their status, download their QR membership card, and renew from /my/membership once logged into the website โ€” no need to email cards out manually.
  • The membership card's QR code links to a public verification page (/membership/verify/<member ID>) โ€” anyone scanning it sees only "valid" / "expired" / "not found," never personal details.
05

Events

EventsEventsNew โ€” this is standard Odoo event creation:

  1. Name, start/end date and time, location.
  2. Under Website, check Is Published to make it visible on the public Events page and the homepage's "Upcoming Events" section โ€” unpublished events won't appear anywhere on the public site, even though they exist in the system.
  3. Add ticket types under the event's Registration tab if you're charging for entry (e.g. "General $0โ€“$30").

Every registration automatically gets a signed QR ticket, emailed with the confirmation. At the door, staff with the Events Officer role use EventsRegistration Desk to scan tickets (or type the ticket reference manually) โ€” it shows valid / already checked-in / invalid, and a live count of registered vs. checked-in.

EventsReportingAttendees / Revenues gives you numbers after the fact without any setup.

06

Tamil Class (School)

Settings

SettingsGeneral SettingsSchool: At-Risk Attendance Threshold โ€” the attendance percentage below which a student is flagged "at-risk" in the report.

Configuration โ€” set these up before each school year

  • SchoolConfigurationTerms โ€” create a term (e.g. "2026-27"), set start/end dates, and open it (State = Open) once registration should begin. Only one term should normally be open at a time.
  • SchoolConfigurationLevels โ€” define your levels however TNCSC teaches (e.g. "Beginner" through "Advanced", or "Grade 1" through "Grade 12"). Each needs a short Code and optional min/max age.
  • Classes aren't under Configuration โ€” create them from SchoolClassesNew: pick the term, level, teacher, weekday, time, location, and max students. This is what shows up as an option when a parent registers online.

Day-to-day

  • SchoolStudents / Enrollments โ€” see who's enrolled where.
  • SchoolAttendance Report โ€” a pivot table of attendance by class.
  • SchoolAt-Risk Students โ€” students below the configured threshold, so you can follow up.
  • Teachers take attendance themselves from their own portal page (/school/attendance) โ€” a roster with a batch Present/Absent/Late/Excused save. An absence automatically emails the parent. Teachers only see their own classes.
  • Parents register their child at /school/register on the public website, in three steps. A full class waitlists the student automatically and notifies them when a seat frees up โ€” no manual waitlist management needed.
  • Each class auto-creates and manages its own online course/materials channel โ€” enrolling or withdrawing a student automatically enrols/unenrols them there too.
07

Classifieds

SettingsGeneral SettingsClassifieds: Listing Duration โ€” how many days a published listing stays live before auto-expiring.

ClassifiedsModeration is where every new submission lands first (state: Pending Review). Open one to Publish or Reject it โ€” only published listings appear on the public /classifieds board. Posting requires the member to be logged in with an active membership, so this queue should only ever contain genuine member submissions.

08

Benefits

Two things to set up, then one thing to log ongoing:

  • BenefitsBenefit Centres โ€” the businesses/organizations offering a member benefit. Add their name, category, description, and logo.
  • BenefitsBenefits โ€” the actual discount/perk, linked to one or more Membership Tiers (only members holding one of those tiers will see it). Set the discount type and validity dates.
  • BenefitsRedemptions โ€” a log a benefit centre (or staff) creates when a member actually uses a benefit, after confirming the member is active. Mostly for your own record-keeping, not something to set up in advance.

Members see only what their own tier qualifies them for at /my/benefits; the public directory of participating centres is at /benefits.

09

Interac e-Transfer Payments

One-time setup

InvoicingConfigurationOnline PaymentsPayment Providers โ†’ open Interac e-Transfer:

  • Interac Recipient Email โ€” the real e-transfer address payments should be sent to.
  • Interac Deadline Hours โ€” how long an unconfirmed payment stays pending before it's auto-cancelled (defaults to 48 hours if left blank).
  • Set the provider's State to Enabled so it appears as a checkout option.

Day-to-day โ€” Treasurer role

When someone chooses Interac at checkout, they're emailed instructions (recipient address, amount, a reference code, and the deadline) automatically โ€” nothing for you to send.

Once you actually receive the e-transfer in your real bank account, go to Interac PaymentsPending Payments, find the matching transaction (match by amount and reference code), and click Payment Received. This confirms the linked invoice/registration/order. If nobody confirms it before the deadline, it auto-cancels and the payer is notified by email.

10

Website content

The Website app, then click Edit on any page while viewing it on the public site to change text, images, and layout directly (drag-and-drop editor) โ€” no code for routine copy changes. SiteMenu Editor lets you add, remove, or reorder navigation items.

Known placeholder content

The Sponsors page and a few header/footer text blocks (e.g. a placeholder phone number) still carry content from the original site design โ€” safe to edit or delete through the Website editor whenever real sponsor logos or a real phone number are ready.

No public signup yet

"Become a Member" buttons currently point to the Contact page, not a self-service signup form โ€” TNCSC doesn't have public online membership signup yet (only renewal, for existing members). Don't redirect these to a form that doesn't exist; talk to your technical contact if/when online signup becomes a priority.

For anything beyond content edits โ€” new page types, new sections with custom behaviour, structural changes โ€” that's a developer task, not a Website-editor task.

11

Accounting basics

The chart of accounts, tax setup, and journals were seeded for a Canadian non-profit when the system was set up, including dedicated revenue accounts (Membership Dues, Event Revenue, Sponsorship, School Fees, Donations) and a Donations journal. You generally don't need to create new accounts for normal operations โ€” membership tiers, event tickets, and school fees are already wired to the right ones.

Don't, without sign-off

Rename or delete existing accounts, or change the company's currency/country, without your accountant and technical contact both signing off โ€” several of these are load-bearing for other parts of the system (e.g. renaming the dues account could silently break where membership payments post to).

Day-to-day invoicing/payment work happens under the Invoicing app as normal.

12

Troubleshooting & getting help

SymptomLikely cause / fix
An app I should have access to isn't in my switcherYou're missing the matching role โ€” see User roles. Ask a Board Admin to check the box for you.
I changed a setting and nothing changed on the siteMake sure you clicked Save. If it still looks wrong after a minute, it may need a technical restart โ€” contact support rather than repeating the change.
A member says their QR card doesn't workCheck their membership state on their member record โ€” the verify page only shows "valid" for members currently active.
An event isn't showing on the websiteConfirm Is Published is checked on the event โ€” unpublished events are invisible on the public site by design.
A parent can't register for a classCheck the term is Open and the class isn't already full โ€” full classes waitlist automatically rather than blocking registration outright.
An Interac payment doesn't confirmDouble-check the reference code and amount match exactly before clicking Payment Received โ€” mismatches usually mean it's a different transaction.

For anything not covered here โ€” a genuine error message, something that looks broken rather than misconfigured, or a request for new functionality โ€” contact your technical support contact rather than experimenting on the live site. Screenshots and the exact steps you took help them fix it faster.