Getting Started

Hello

This is the first page.

Getting Started

Welcome to Ifitwala Ed — a modern, elegant education ERP & LMS built on the Frappe framework. This guide walks you from zero to a working campus in minutes.

> What you’ll do > > 1. Install or connect to an Ifitwala Ed site > 2. Run the first-time setup > 3. Create core records (School, Academic Year, Programs, Courses) > 4. Invite users and assign roles > 5. Learn daily workflows (timetable, attendance, grading)


Requirements
  • Server: Ubuntu 22.04+ (2 vCPU / 4 GB RAM minimum for small schools)
  • Stack: Python 3.10+, Node 18+, Redis, MariaDB 10.6+, Yarn, wkhtmltopdf
  • Frappe/Bench: Bench CLI with a production or dev site
  • Browser: Chrome/Edge/Firefox (latest)

> Tip: If you’re evaluating, start on a dev VM. You can migrate data later.


Install OptionsA) New server (self-host)

Create a new bench and site, then install the app:

# As a non-root user with sudo
bench init frappe-bench --frappe-branch version-15
cd frappe-bench

# Create site
bench new-site ifitwala.com   # use your domain or dev host
# (answer DB + admin password prompts)

# Get the Ifitwala apps
bench get-app https://github.com/fderyckel/ifitwala_doc
bench get-app https://github.com/fderyckel/ifitwala_ed

# Install the school ERP into your site
bench --site ifitwala.com install-app ifitwala_ed ifitwala_doc

# Start (dev) or set up production
bench start
# or:
# bench setup production <your-linux-user>
B) Existing Frappe site
bench get-app https://github.com/fderyckel/ifitwala_ed
bench --site your.site install-app ifitwala_ed
bench restart

First-time Setup

When you log in as Administrator, you’ll see the setup assistant.

  1. School profile — Name, logo, academic level (K-12, higher-ed, training).
  2. Localization — Default currency, timezone, and language (you can add more later).
  3. Email — Outgoing (SMTP) and incoming (optional).
  4. Admin user — Create staff accounts (Principal, Registrar, Teachers).
  5. Backup — Enable automatic S3 or local backups (recommended).

> Note: You can rerun parts of setup anytime via the System Settings and Email Account doctypes.


Core Concepts (at a glance)
Concept What it is Typical examples
School Your institution entity Ifitwala International School
Academic Year / Term Time containers for courses & grading 2025–2026; Term 1
Program Cohort or curriculum path Grade 7, B.Sc. Math, Level 2
Course A teachable unit MATH-701, Physics I
Section A course instance Grade 7 Math – Section A
Student / Guardian Learner + parent/guardian links John Doe; Jane Doe (mother)
Staff Faculty and admin users Teachers, Registrar
Timetable When/where instruction happens Mon 10:00–10:50, Room 203
Attendance Daily or per-period presence Present/Absent/Excused
Assessment Graded work & transcript Quizzes, Exams, Final grade

Create Your First School Data1) School & Year
  1. School → New → fill address, contact, logo.
  2. Academic Year → New → 2025-2026.
  3. Academic Term → Term 1/2 (or Semester 1/2).
2) Programs & Courses
  1. Program → New → Grade 7.
  2. Course → New → MATH-701 (Grade 7 Math), SCI-701 (Science).
3) Sections & Timetable
  1. Course Section → New → MATH-701 Section A, teacher, room, capacity.
  2. Timetable → Add weekly slots (period, day, room).

> Pro-tip: Bulk import with Data Import for faster onboarding (Programs, Courses, Students).


Add Students & StaffStudents
  • Student → New → basic info + link a Guardian (email is useful for portal).
  • Enroll into a Program and assign Sections.
Staff
  • User → New (email as ID) → assign Roles:

    • Teacher, Program Coordinator, Registrar, Accounts User, etc.

> Security: Use 2-factor auth for admins; keep roles minimal.


Daily WorkflowsTake Attendance
  • Attendance → choose date, section, mark Present/Absent/Excused.
  • For daily attendance, enable the daily mode in Education Settings.
Grade Work
  • Assessment → create components (Quiz, Midterm, Final).
  • Enter marks per student → submit → transcript aggregates automatically.
Communicate
  • Send announcements via Email Campaign or Newsletter.
  • Use built-in comments/mentions on records to collaborate.

Multi-Language (Docs & App)
  • App UI supports multiple languages. Set default in System Settings → Language.
  • Documentation pages use language codes (e.g., /docs/en/..., /docs/fr/...).
  • To add docs in another language: create a Documentation record with the right Language Code.

> Authoring tip: Use clear headings (#, ##, ###) — our site auto-generates a TOC and search index from headings.


Backups & Updates
  • Backups: Set schedule (daily offsite recommended).

  • Update:

    cd ~/frappe-bench
    bench update --reset
    
  • Before updating: take a manual backup and snapshot (if on a cloud VM).


Troubleshooting

> Docs page 404? > Check Nginx alias for /docs/ and verify files under sites/assets/ifitwala_doc/docs/.

> Emails not sending? > Verify SMTP credentials in Email Account; check Email Queue for errors.

> Slow during peak hours? > Add RAM/CPU, enable Redis cache, and tune MariaDB buffers.


FAQ

Can I import legacy students/courses? Yes. Use Data Import (CSV) for Students, Guardians, Programs, Courses, Sections.

Does it support multiple schools? Yes. Create additional School records and scope programs/years per school.

Where are logs? Bench logs in ~/frappe-bench/logs/. App-specific log: ifitwala_doc.log.


What’s Next?
  • Set up payments (if you use Fees/Invoices).
  • Deploy production with HTTPS + regular backups.
  • Explore feature docs: attendance policies, grading schemes, transcripts, portals.

Changelog
  • v0.1 — Initial “Getting Started” draft with install, setup, and first workflows.

Authoring checklist (for editors)
  • Title = Getting Started
  • Slug = getting-started
  • Language = en
  • Status = Published
  • Category = Introduction (optional)
  • Order = 0
  • Paste content into Body (Markdown)
  • Add tags: onboarding, basics

> Screenshot placeholders > > * Dashboard after login > * School form > * Program and Course list > * Timetable grid > * Attendance sheet > (Upload images and embed with standard Markdown: ![Alt](/assets/ifitwala_doc/docs/img/...) once you decide your image path.)