Wese~Kwese User Manual
Everything you need to run your school's fees on it, from installing it to closing a term.
Wese~Kwese is a fees system that runs on one computer in the school office — no internet connection needed day to day, no monthly subscription. Every other computer on the school network opens it in a web browser. Receipts, invoices, debtors and cash reports, fund tracking, and support for more than one currency (USD and ZiG side by side, or converted between them) are all built in.
This manual follows the same order as the app's own Getting started checklist on the Home page — work through it top to bottom the first time, then use the sidebar to jump straight to whatever you need later.
1Installing it
On the one PC in the office that will act as the server.
- Download the installer and double-click it on the PC that will be the server. This only needs doing once, on one computer.
- Windows shows "Windows protected your PC" — this is normal for a small independent app that isn't code-signed, not a virus warning. Click More info, then Run anyway.
- The wizard asks a few questions:
Question What to answer Port 8000is fine unless something else on this PC already uses it.Time zone Africa/Harare.Backup folder A folder your cloud-sync app (e.g. MEGA) watches, so a copy leaves the building automatically every day. Database Built-in (SQLite) — nothing else to install, fine for one school. Only choose PostgreSQL if you already run it. Options Desktop shortcut; allow other school PCs through the firewall (local network only); daily backup at 17:00. - When it finishes, your browser opens on its own, on the first-run page. This only works on the server PC itself, and only once — it's where you create the very first Admin account. Choose a strong username and password.
- Other PCs on the school network open
http://<server-PC-name>:8000/in any browser.
Upgrading later
Run a newer Setup.exe over the top — it notices the existing install and shows a page confirming your port, time zone, backup folder and database settings will be kept unchanged, skipping the setup questions entirely. Your data and settings are kept, and a backup is taken first automatically. Never uninstall to upgrade.
2Other PCs & access away from school
Two separate things: other computers in the same building, and your own phone or PC somewhere else.
Other PCs in the same building
Tick "allow other school PCs through the firewall" when installing (see the table above), or do it at any time afterwards: Start Menu → Wese~Kwese → "Allow other PCs to connect to Wese~Kwese". It finds this PC's current address and opens the firewall for the local network only — nothing reaches it from outside the building. Run it again whenever the server PC's address changes (a different router, a new hotspot) and other PCs start showing "That address isn't allowed".
This needs no internet connection at all — only something to connect the PCs to each other. A small Wi-Fi router is the sturdier choice where one is available (no battery or data plan to worry about, and it can be given one fixed address and left alone); a phone's hotspot works too if that's all there is.
Your own phone or PC away from the school building
This one needs the school to have an internet connection. Install Tailscale (free) on the server PC and on your phone or PC, signed into the same account on both, then run Start Menu → Wese~Kwese → "Allow remote access to Wese~Kwese (Tailscale)". Open Wese~Kwese from the Tailscale address it gives you, from anywhere with internet — wifi or mobile data, hotspot turned off entirely.
Both tools can be used together at the same time: other PCs in the building keep using the local address, your own phone elsewhere uses the Tailscale one.
Never forward the port on your router
Wese~Kwese speaks plain, unencrypted http — fine on a trusted school network, but forwarding the port on your router puts every password and every student's personal and financial details on the open internet, reachable by anyone. Tailscale gives you the same "reach it from anywhere" result without ever opening anything to the internet: it's a private, encrypted link between your own devices only.
3First-time setup
The Home page shows a Getting started checklist until every one of these is done.
1. School details
Menu → School details. Type the school's name exactly as it should appear on receipts, invoices, reports and exported files — this is the first thing every fresh install asks for. Address, phone and e-mail are optional and also print on documents.
Your school's logo. Further down the same page, under School logo, choose a PNG or JPG picture of the school's badge and press Upload the logo. It is then printed above the school's name on every receipt, invoice, report and downloaded PDF, Word and Excel file, and shown at the top of every screen and on the sign-in page. The picture is shrunk to a sensible size automatically; a wide or square logo on a plain or see-through background works best. Replace the logo or Remove the logo at any time. (Wese~Kwese's own logo appears in the browser tab and on the sign-in page until the school has uploaded its own.)
2. The current term
Menu → Setup → Terms → Add term. Enter the year, the term number, and its opening and closing dates (used for part-term fee calculations later), then tick Is current — new invoices and payments default to whichever term is current.
Does your school bill monthly?
Most schools bill each term. If yours charges fees each month, choose Fees are billed: each month on the very first page you fill in when you install (or later under School details). A billing period is then a month instead of a term, and every screen, invoice, receipt and report says month. Then:
- Setup → Terms and months → Add a whole year at once creates January to December with their dates filled in. Tick Is current on the month you are in.
- Set the fees for one month (step 5), then Setup → Fee structures → Copy fees to other terms or months: Tick all and copy, instead of typing them twelve times. Anything already set for a month is left as it is.
- Each month, Invoices → Generate month invoices.
Changing the setting later never renames existing terms or invoices. Month end in the menu is a different thing: it closes a calendar month's books, and works the same for every school. A school whose parents pay a term's fees in monthly instalments does not need to bill monthly: see Fees & invoices for the instalment schedule.
3. Classes
Setup → Classes → Add class. Give each a name and a Sort order number — this controls the order classes are promoted in at the end of the year, so number them from youngest to oldest.
4. Fee categories and fee items
Fee categories group students who pay the same amount (Day Scholar, Boarder, Staff Child...). Fee items are what the fees are made of (Tuition, Levy, Building Fund...) — each item is also its own fund account that income and expenditure are tracked against, so keep the list to what you genuinely want to track separately. Both are under Setup.
5. Fee structures
Setup → Fee structures → Add fee structure. One structure per (fee category, term, currency) combination, listing how much each fee item costs. This is what generates every student's invoice — a category with no structure for the current term simply won't get invoiced.
6. A receipt book
Setup → Receipt books → Add receipt book. Just a number range, e.g. 1 to 999. The last number must be higher than the first (for example 1 to 100). Leave Next number blank to start at the first number; if you fill it in, it must lie inside the range. Leave Method blank for one book used by every payment method (the normal case) — only set it if this school keeps a separate paper book per payment method.
7. The other people who'll use it
Menu → Users → Add a user. See Users & roles below for what each role can do.
8. Students
Add them one at a time, many at once from Excel sheets, or use the Access importer if you're moving off the old system. See Adding & finding students.
4Adding & finding students
Adding a student
Students → Add student. The student number is generated automatically
(two initials plus a running number, e.g. AM00001) and can never be typed in or changed — it's
not on the form at all. Fill in class, fee category, and Bill fees in (which currency this student
is invoiced in — see Multi-currency). A date of birth, if entered, must make the pupil at least
2 years old: a date that would make them younger is refused.
Registering many students at once (Excel sheets)
For a whole school — especially with one laptop and no network — don't type pupils in one by one. Students → Import from sheets (Admin or Bursar) gives each teacher a registration sheet and reads the filled-in sheets back.
- Choose All classes and click Download the sheet: a zip with one Excel file per class, the class already filled in, drop-down lists for gender, class, fee category and currency, and a "How to fill this in" tab. Give each teacher theirs. How the filled-in sheets come back is the school's decision: a USB stick, a shared folder or cloud drive, e-mail and WhatsApp all work. They hold children's details, so it helps to send them only to the bursar (not a group), password-protect the file if you can (in Excel: File → Info → Protect Workbook → Encrypt with Password), and delete the copies once they have been imported.
- Teachers type one pupil per row. Only surname, first name, gender and class are required; date of birth (DD/MM/YYYY), addresses, parents, phones, doctor, emergency contact and notes are optional and can be added later. Teachers can leave Fee category blank: you choose it when you upload.
- Upload the returned files together (Excel .xlsx or CSV) and click Check the sheets. Choose a fee category (and a class, if a sheet has no Class column) for rows that don't say.
- Read the preview: who will be added, by class; rows with problems (Excel's own row number and the reason); and pupils already in the system, which are skipped. Nothing is saved yet.
- Click Add ... students. Student numbers are given class by class, alphabetically, continuing after the highest number already used. Then use Invoices → Generate term invoices to bill them.
A row had a problem?
Rows with problems are left out; everyone else is added. Fix the sheet and upload it again — pupils already added are recognised (same name and date of birth, or the same name and class when there is no date) and never added twice. A class list the school already keeps in Excel works too: columns are found by their headings, in any order, and extra columns are ignored.
Finding a student
The Students list searches by name or student number, and filters by class or status. Every student's own page shows their full history: every invoice and payment they've ever had, all in one place.
Class lists
Students → Class list. One class, or every class one per printed page, with optional empty ruled columns for a register or mark sheet. Shows no money figures, so any signed-in staff member can print it.
5Fees & invoices
Generating invoices
Invoices → Generate term invoices. Pick a term and it creates an invoice for every active student who doesn't already have one — safe to run again later, existing invoices are left alone. A student is billed from whichever fee structure matches their fee category and their own currency; if none matches, they're listed as skipped so you can add the missing structure and run it again.
A single student's invoice can also be created on the spot from their own page, or from the payment screen if the term hasn't been billed for them yet.
Parents paying in monthly instalments
A payment can always be part of an invoice, and what is left stays on the Debtors report. If parents pay a term's fees in monthly instalments, you can go further: under School details choose Parents pay: in monthly instalments. Each term then needs its opening and closing dates (Setup → Terms and months), from which the system works out one instalment a month — the first when the term opens, then the 1st of each month until it closes — each an equal share of the fees.
- Debtors report: new Due by now and Behind columns, an As at date (today unless you change it) and Only those behind schedule. Downloads carry the same columns.
- A student's page shows the same two columns against each invoice.
- The invoice (which prints) has an Instalment plan: each due date, what should have been paid by then, and where the student stands. Give it to the parent.
- Home says how many students are behind as at today, with a link to them.
Paying ahead is always fine. It does not apply when fees are billed each month, and nothing changes for a school that keeps the default: the whole term's fees due at the start of the term.
Reducing fees (Admin only)
Open the invoice → Adjust fees. Covers a part-term fee for someone who left early, a bursary, a discount, a correction, or a debt written off. It can never reduce an invoice by more than what's still owing, needs a reason, and is recorded against who did it and when. Fee adjustments lists every one made; an Admin can void one to put the fees back exactly as they were. Only Admins can reduce fees, so the person collecting money is never the same person who can write debts off.
6Taking a payment
- Find the student and open their page (search by name or student number). Take payment only appears when they still owe something — once every invoice is fully paid, the button disappears.
- Click Take payment.
- Pick which term's invoice this is towards — it shows what's still owing on each one.
- Type the amount, the date, and how it was paid (Cash, Bank, Ecocash, Telecash, Other). The Amount box always starts blank, on purpose: type exactly what was handed over, rather than accepting a figure that was filled in for you.
- Click Record payment — you land straight on the official receipt, numbered automatically from the active receipt book.
A payment can never overpay an invoice
The amount is capped at what's still owing; the form tells you the limit as you type. Money is split across the invoice's fee items in proportion automatically (a $500 payment towards a $500 Tuition + $1,500 Levy invoice puts $125 towards Tuition and $375 towards Levy) — this is what feeds the fund balances in Expenditure.
Printing and downloading
Print sends the receipt straight to the browser's print dialog. Download offers PDF, Word, Excel or CSV — every receipt, invoice and report has the same button, and every file starts with the school's name, printed by whom, and when.
Voiding a payment
Nothing is ever deleted or edited once money has moved. Payments → (find it) → Void, type a reason — the record stays, struck through in lists and exports, with who voided it and why. If some of a receipt's money has already been spent from a fund, voiding is refused until that expenditure is voided first, so a fund can never go below zero.
7Reports
| Report | Answers |
|---|---|
| Debtors | Who still owes money, for a term — filter by class. Every row links straight to Take payment. |
| Daily cash | How much came in, and how, for any date range — split by payment method and by who received it. Run at the end of every day. |
| Funds | What's actually in each fund right now — opening balance, income, expenditure, closing balance, per fee item. |
Tabs across the top (Debtors, Daily cash, Funds, Payments, Expenditure, Other income) move between all six money screens without going back to the menu — Payments, Expenditure and Other income keep their own buttons in the main menu too, for recording new ones day to day.
Every one of the six, plus the Home page's own term summary tiles, downloads as PDF, Word, Excel or CSV. A school taking more than one currency sees each currency's figures as its own separate block on every report — see Multi-currency.
Charts. A few screens show a small chart above the table, to make the numbers easier to take in at a glance: the Home page shows collections building up through the term against what was invoiced; Debtors shows what's owing by class, and (for a school on monthly instalments) how many students are behind; Funds shows income against expenditure for each fund; Daily cash shows the mix of payment methods. Charts are for the screen only — the printed page and every download show the same figures as text, as before.
Date filters. The From and To boxes (Payments, Daily cash, Funds and the Activity log) cannot look into the future — nothing has been recorded after today. The calendar stops at today, and if a later date is typed, today's date is used instead and a message says so.
8Expenditure
Every fee item doubles as a fund: what's been received for it, less what's been spent from it. Expenditure → Record expenditure shows each fund's current balance right in the "Spend from fund" list, and you can only spend what a fund holds — an over-spend is refused with a message saying exactly how much is available.
Voiding a piece of expenditure puts the money back into the fund. Voiding a receipt whose money has already been spent is refused until that expenditure is voided first — a fund can never be pushed below zero.
Spending money from other income
Each kind of other income (uniform sales, tuck shop, broilers...) is a fund of its own. It appears in the Spend from fund list under Other income funds, with its balance, for as long as it holds money: for example restocking uniforms from uniform sales. The same rules apply as for fee funds: you can only spend what it holds, in the currency it was received in, and income that has been spent cannot be voided until that expenditure is voided first. Once a fund's money is spent it drops off the list; its history stays on the Expenditure page and the Funds report.
9Other income
Money that isn't school fees — uniform sales, hall hire, that kind of thing. Other income → Record other income, choosing a category from a list rather than typing one, so the same thing is always spelled the same way in reports. No category yet? Click Add other income category right there on the form — nothing you've already typed is lost.
10When a student leaves
Nobody is ever deleted — their receipts have to stay on record. Open the student and click Record leaving instead.
- Choose the reason: transferred, completed school, withdrawn, stopped attending, expelled, passed away, entered by mistake or a duplicate, or other.
- Enter the date, and where they're going if that's useful (a transfer's new school name, say).
- If they still owe fees, the page tells you — but lets you record the leaving anyway.
They drop out of class lists, the active count, and new invoices, but anything still owing stays on the Debtors report until it's paid, marked with the reason. A printable student statement shows a receiving school exactly where the account stands — whether fees are cleared, and the leaving details.
Part-term fees, worked out automatically
For a student who left partway through a term whose dates are set (see First-time setup), the student's own page suggests a fair fee for the time actually attended, and offers to reduce the invoice by the rest in one click.
Bring back as an active student undoes a leaving completely — for someone entered by mistake, or who's coming back.
11End-of-year promotion
Students → End-of-year promotion. Moves every class up in one go: each class gets a suggested destination (the next class by the Sort order set under Setup → Classes, or the last class finishing school), you tick anyone repeating the year, review the whole plan, and confirm. Nothing changes until you confirm.
Students keep their full fee history, and past invoices keep the class they were actually billed in at the time — promoting a class never rewrites history. The latest promotion can be undone from the same page; anyone whose record has changed since is left as they are.
12Old records (Admin only)
Students → Old records. Sets how long former students' personal details (name, birth date, address, parents, phone, doctor, notes) are kept after they leave — default 7 years. Past that period, and only once a student owes nothing, an Admin can erase their personal details in bulk, or erase one student individually on request at any time.
Erasing replaces the name with "Former Student" but keeps the student number, every invoice and every receipt — reports and totals still add up correctly. It cannot be undone, and older backup files still hold the details as they were when each backup was made.
13Multi-currency
Most schools need only the one currency, already set up. A school that takes more than one (USD and ZiG, say) adds a row per currency under Setup → Currencies (code, symbol, and which one is the default), then sets up a fee structure in each currency for the same category and term, and gives every student a Bill fees in currency on their own record.
Currency mode
Top menu → Currency mode (it appears once a second currency is set up; the Home page also shows the current mode, with a Change button). Decides what happens when a payment doesn't match its invoice's currency — switchable at any time as the currency situation changes; switching never rewrites a payment already recorded.
| Mode | Behaviour |
|---|---|
| Strict (the default) | A payment can only be in its invoice's own currency. Nothing is ever converted or added together — every report shows each currency as its own separate block. |
| Blended | At the till, a payment can be received in a different currency and converted into the invoice's currency using an exchange rate. Reports still stay exactly as simple as Strict mode — they only ever see the already-converted figure, never a mix. |
Using Blended mode
- Keep exchange rates current under Setup → Exchange rates — add a new row whenever the rate you're using changes (however you source it: bank, interbank, parallel market, it doesn't matter to the system).
- On the payment screen, tick Received in a different currency?, choose which currency, and type how much was actually handed over and the rate.
- The system converts it and applies the result to the bill. The receipt shows both figures — what was received, and what it became.
14Month end
Money menu → Month end. Closes a calendar month — once closed, nothing (a payment, expenditure, an adjustment) can be recorded or voided in it until an Admin reopens it. Use this once a month's books are settled, so nothing gets backdated into them by accident.
15Users & roles
| Admin | Bursar | General | |
|---|---|---|---|
| See students (no money) | ✓ | ✓ | ✓ |
| Payments, invoices, reports, expenditure, other income | ✓ | ✓ | — |
| Void a record (needs a reason), close a month | ✓ | ✓ | — |
| Reopen a closed month | ✓ | — | — |
| Setup, users, activity log, fee adjustments | ✓ | — | — |
Users → Add a user. A new (or reset) password is temporary — the person must choose their own at first sign-in. Five wrong passwords in a row locks a username for 15 minutes; an Admin can unlock it sooner from the Users page.
Automatic sign-out: anyone who hasn't touched the screen for a while (3 minutes by default) gets a 30-second warning, then is signed out — Users → Sign-out timing to change it (1–60 minutes).
Forgot the only Admin's password? On the server PC: Start Menu → Wese~Kwese → Reset a forgotten Wese~Kwese password (needs Windows administrator permission). It lists every username, prints a one-time temporary password, and also clears a lockout.
16Backups
A backup runs automatically every day at 17:00 (the newest 30 are kept), and Backups → Back up now makes one on demand any time — worth doing right before something like an upgrade.
E-mailing a copy
Every backup can also e-mail itself to up to 5 addresses, as an AES-256 password-protected zip — the database holds every student and payment record, so nothing is e-mailed until a zip password of at least 8 characters is set. Write that password down somewhere safe: without it, the e-mailed backups can't be opened. Open one with the free 7-Zip.
Gmail (and most providers) need an "app password"
Your normal Gmail password won't work here — Google blocks it for apps like this. Instead:
- Turn on 2-Step Verification on the Google account you're sending from (Google Account → Security), if it isn't on already.
- Go to
myaccount.google.com/apppasswords, name it (e.g. "Wese-Kwese Backups"), and create it — Google shows a 16-character password once. - Paste that 16-character password into Mail account password on the Backups page — not your normal Gmail password.
- Make sure the Mail provider is set to Gmail (server
smtp.gmail.com, port587, security STARTTLS) — the wrong port/security combination shows a "mail server hung up" error. - Double-check the app password was created under the same Google account entered as the username — an app password only works for the account it was made under.
Click Save, then Send a test e-mail to confirm it went through.
If the e-mail can't go out for any reason, the copy on this PC is still made regardless, and the reason is shown on the Backups page and as a warning on the Admin's Home page.
17Restoring a backup
On the server PC: Start Menu → Wese~Kwese → Restore a Wese~Kwese backup (needs Windows administrator permission, since it's about to replace the live data — not done from inside the app itself).
- It lists the backups on this PC, or takes the path of a backup file (or an e-mailed zip, plus its password).
- Shows what's in the backup next to what Wese~Kwese holds now, and warns about anything that would be lost.
- Nothing happens until you type
RESTORE. - It saves a safety copy of the current data first (never overwritten), swaps the backup in, upgrades it if it came from an older version, and restarts the server.
Practise this once, on a quiet day
So you're not learning it for the first time during a real emergency. To undo a restore, restore the safety copy it saved automatically before making the swap.
18Bringing over old Access data
Start Menu → Wese~Kwese → Import old Access data into Wese~Kwese — needs the free Microsoft
Access Database Engine (64-bit), and only works while Wese~Kwese is still completely empty. It does a
practice run first, shows every warning, and only actually imports once you type YES. Each
imported user gets a one-time temporary password, printed once — write them down. It also checks its
totals against the old database's own Income and CurrentAcc tables and prints
any difference, so you can verify nothing was lost in translation.
The old Access database has no idea of multiple currencies, so everything is imported into the school's one default currency — add more under Setup → Currencies afterwards if needed.
19Troubleshooting
"Windows protected your PC" when running the installer
Expected — the installer isn't code-signed yet. Click More info, then Run anyway. Not a sign of a virus.
Backup e-mail fails: "server refused the username or password"
You're using a normal Gmail password instead of an app password — see Backups above for the full fix.
Backup e-mail fails: "mail server hung up"
Port and security type don't match. For Gmail: server smtp.gmail.com, port 587,
security STARTTLS.
Another PC says "That address isn't allowed"
Run Start Menu → Wese~Kwese → "Allow other PCs to connect to Wese~Kwese" on the
server PC — it re-detects the current address and restarts the server for you. A fixed IP address for the
server PC (set in your router) avoids this happening again. See
Other PCs & access away from school for the full picture, including access from
outside the building. (By hand, instead: open C:\ProgramData\SchoolFees\.env as administrator,
add the new address to ALLOWED_HOSTS, save, then restart the server the same way — but never
edit the copy of this setting inside the app's own Program Files folder, which the next update overwrites.)
Can't sign in / locked out
An Admin resets it under Users. A username locks for 15 minutes after 5 wrong passwords in a row — an Admin can clear that sooner. If the only Admin is locked out or has forgotten their password, use the Start Menu → Reset a forgotten Wese~Kwese password tool on the server PC.
A student's fee category changed mid-term
Not automatic — changing a student's fee category or class partway through a term doesn't re-bill an invoice already generated. Use Adjust fees on the invoice to correct the amount, with a note explaining why.
20Support
E-mail wesekwese@gmail.com or call / WhatsApp +263 77 314 1598. When something doesn't look
right, the file at C:\ProgramData\SchoolFees\logs\schoolfees.log on the server PC is the
first thing worth sending along.