Product Updates

Changelog

Follow what changed in Saksı Kampüs, release by release.

Version 2.2.4

Latest release Open the page for this release

AI now detects the questions in an interactive PDF, the back office gained a twin-question generation agent, a credit ledger and a metrics page, fixes landed across exam timing, availability and the payment listings, and the app pages got markedly faster.

Content & Questions

  • New

    Questions in the interactive PDF editor are now detected by AI. The "Generate with AI" step on the toolbar takes a page range, the elements to place on the page and the difficulty, pool and topic defaults for the questions it will create; the editor stays read-only while the scan runs. What comes back is a draft: nothing is written to the question bank, every question is framed where it was read, and a preview button in its corner shows the text, the choices and the answer that would be saved. The report lists every detected question next to the answer it carries, and for books that do not print their answers on the page, the answer key is applied to the draft. Approving saves only the questions whose answer is known; the rest stay in the draft until an answer is supplied. Discarding a draft only ever discards what was never saved — nothing an approval wrote is undone — and the same question is never created twice across runs.

  • Fixed

    Paging and totals were fixed on the course, unit and lesson listings. The organization’s own content, the user’s subscription and the content granted through a package were each fetched separately and merged, so a page of ten could return thirty rows, page two was not the second page of the union, and the page count came out wrong. It hit exactly the roles that reach more than one source — organization admins, coordinators and tutors. A subscription dated in the future also hid only the course while leaving its units, lessons and items visible; the rule now applies to all of them.

Saksı AI

  • New

    The back office gained an "Agents" panel, with twin question generation as its first agent. You upload a question bank PDF (optionally with a page range) and pick the curriculum node the questions will hang from along with the generation and review models; the AI extracts the questions, writes copyright-safe twins of them, has a separate model review what it produced and repairs once whatever falls below the quality bar. The run executes on the server, so closing the tab does not affect it, and the panel follows it stage by stage. Generated questions are reviewed as preview cards — text, choices, difficulty and curriculum topic are all editable per question — and reach the question bank only once you approve them. A printable PDF can be produced as well.

  • Improved

    Twin generation runs became reliable. Three runs can execute at once — a second run used to wait for the first to finish, which read as the panel being stuck — a run that goes silent is failed automatically so the panel offers Retry, and the same job handled twice can no longer overwrite a run that had already finished. Generation now uses the subject’s own glossary, so the terms a question tests are preserved verbatim while the choices and their order genuinely change. A single character the typesetter could not set no longer costs a whole run its PDF either.

Payments & Invoicing

  • New

    Group lesson packages are grouped by subject. Package management takes a category per package (Sciences, Math & Computer Science, Social Sciences & History, Language & Literature, Arts, Engineering, Business & Economics, Other), and the pricing page shows a row of tabs for them under the group lessons tab. The row appears only when more than one category is present, and a leading "All" tab is selected by default, so uncategorised packages stay reachable.

  • New

    A "Credit Ledger" page was added to the management menu. Every movement on student credits and the current balances are listed in two tabs, with search, filtering and paging all resolved on the server, and a balance row hands over to the ledger filtered to that credit. A movement opens in a right-hand sheet headlined by its minute delta, and shows the package that granted the minutes, the feature it came from, what was paid for that package and the payment behind it with its date, status and total. A credit granted by hand says so instead, since it has no payment record.

  • Improved

    The tutor earnings list is aggregated on the server. The page used to pull every matching entry in 500-row requests and then group, filter, paginate and total them in the browser, with the name search and the subject filter applying only to what it had fetched. The list now renders one page from a single request, and the totals and the export are computed over the whole filtered range. Cancelled entries stay out of every earnings figure and a row with nothing left to pay is dropped rather than shown at zero — filtering by the cancelled status brings those rows back.

  • Fixed

    The payments and subscriptions management listings are scoped to the caller’s organization. The organization filter never reached the server, so the queries ran unscoped: an organization admin’s page usually failed to open, and when it did open, the counters above the list were counted over every organization. Platform administrators keep their cross-organization access.

  • Fixed

    Deleting an account now cancels its subscriptions. The subscription stayed active after the account was deleted, so the nightly renewal kept charging a card nobody can pay, then failed while addressing the cancellation e-mail to a user it could no longer find, and the same rows failed again the next night. The subscriptions the account pays for on someone else’s behalf — a guardian paying for a student, say — are cancelled with it, and the payment history is kept intact.

Reports & Metrics

  • New

    A "Metrics" page was added to the management menu. Six cards cover new users, active users, completed assessments, answered questions, payments with their revenue, and completed live sessions; each shows the value for the selected range, the change against the previous period of the same length, and a sparkline. Selecting a card drives the chart below it, which overlays the previous period as a dashed ghost line. Buckets follow the range — daily, weekly or 30-day — and every total is the sum of the buckets it is drawn from.

Assessments

  • Fixed

    Elapsed exam time is recorded from the wall clock. It used to be tracked by a counter bumped a fixed amount per tick, and a background tab is throttled to about once a minute, so a student who switched away came back with part of the elapsed time never recorded. The timer on screen and the value stored now read the same clock, the time is written when the page is hidden or closed, and a checkpoint still in flight when the student finishes can no longer put the attempt back to "in progress".

  • Fixed

    The dialog that waits while open-ended answers are graded was fixed. A single failed request was read as "grading finished", so an attempt could be completed over answers that were never scored; a check that could not be made is now treated as unknown and polling continues. There is also a way out of a dialog that cannot be dismissed: if grading drags on, it offers to go to the results. Polling stops while the tab is hidden and checks immediately on return, and on the interactive PDF side a badge no longer stays stuck on "grading" after an error.

Live Sessions

  • Fixed

    A student added to a class later is added to the class’s upcoming group sessions too. Participants were snapshotted from the class roster when the session was booked, so a student who joined afterwards had no participant row and was rejected at the join link. The missing rows are now filled in for the unfinished sessions of the class’s active tutor matches, and the join link is e-mailed and notified to the newly added student only. Joining by invitation code goes through the same path.

  • Fixed

    The comboboxes on the intro session form no longer show untranslated empty states, and their options load faster.

Availability & Matching

  • Fixed

    Date-specific availability is saved in one go. Editing a day dropped its existing slots first, which put the day back on its weekly hours for an instant, so an edit whose final state covered every booked session perfectly well could still be rejected: a tutor with an 11:00-14:30 override hosting an 11:00-12:30 session could not add 18:00-23:00 to that same day. Saving is now a single request in a single transaction, the coverage check runs against the resulting hours, and a rejected edit leaves the stored hours untouched. A failed save keeps the dialog open so the entered hours can be corrected.

Speed & Stability

  • Improved

    The app pages got markedly faster. The sidebar read the current roles through a query of its own, which made a page rebuild itself two or three times per load and re-run every component and every query with it; roles are now read from what the session already carries. Translation files are shared with the request already in flight, and the translation watchers that piled up across client-side navigation are gone. The payments, subscriptions and earnings lists arrive in one query instead of an extra request per row, an exam checkpoint costs two requests a minute per student instead of six, and the grading-status poll reads a single marker rather than the whole queue. Requests per full page load went, for example, from 29 to 6 on the questions page, 18 to 6 on contents and 24 to 9 on users.

  • Fixed

    Fixed a fault that made screens asking for a user profile fail. The profile field could not be resolved on the server at all: it came back empty with an error recorded alongside it, and since the client rejects any response carrying an error, that surfaced as the page not opening rather than as a missing field.

Version 2.2.3

Open the page for this release

Question import from PDFs and images, an AI chat for video solutions and a bilingual blog shipped, along with fixes across live session times, invoicing and permissions.

Content & Questions

  • New

    Questions can now be imported from PDFs and images. The "Import from PDF/Image" step on the questions list and in the assessment question picker takes a single PDF (with an optional page range) or a set of page images you can reorder. Questions appear as preview cards as they are parsed; you mark the correct choice and save them one by one or in bulk, skipping the ones you do not need. Difficulty, pool and curriculum can be assigned to the whole selection at once. The answer key can be pasted as text, uploaded as a file, or read from pages you mark inside the PDF. An unfinished import resumes where it left off, even if the browser was closed in between.

  • New

    Tutors and administrators can review assessments and contents without starting them as a student. An eye icon on the list cards opens a preview in a new tab: questions are browsed one at a time, SAT/AP mock exams get a tab per module, and correct answers and the grading rubric for free-response questions are visible from the start. Contents open PDFs and videos without the student-side question pop-ups, the AI chat and time tracking, and drafts can be reviewed before they are published. The preview stores nothing, so attempt analytics are untouched.

  • Fixed

    Scrubbing a video no longer wedges the player. Seeking could leave the picture racing ahead of the sound, with play and pause unresponsive until the page was reloaded.

Live Sessions

  • New

    Tutors are now reminded to file their post-session reports. A persistent banner on the dashboard lists the sessions still owing one, and the same list opens in a dialog whenever the tutor returns to the app — at most once every 15 minutes — with each row linking to that session. Sessions missing a report are also marked on the live sessions page, both in the list and in the day, week and month calendar views.

  • Fixed

    Session times in the Zoom portal are shown in Türkiye time. We never sent a timezone, so the portal fell back to the host account’s own zone and could display a lesson an hour off whenever that zone observed DST; the stored time was always correct, only Zoom’s label was wrong. The live session panel is now pinned to the organization’s zone as well, and viewers in a different zone see a "TSİ" hint next to the time.

  • Fixed

    Sessions that have started stay in the "Upcoming" list. A lesson used to disappear the moment it went live — exactly when the join link was needed. An ongoing lesson now carries its own badge.

  • Fixed

    The class detail in "My Classes" now lists only that class’s sessions; every class previously showed the same list, including the student’s one-to-one lessons and the sessions of their other classes. The join button was fixed too: for Zoom sessions it landed on the login page, and it was clickable even for lessons days away.

  • Changed

    The status dropdown and visibility switches were removed from the classroom report form for tutor roles. Reports written by these roles are published directly and visible to administrators only.

Payments & Invoicing

  • New

    Individual and corporate billing details are now stored separately. There used to be a single record per user, so saving corporate details overwrote the individual address and phone, and an invoice could be bound to a contact opened for the previous legal person. Both profiles are kept side by side, the one used at checkout applies to the next invoice, and changing the tax number makes the provider contact resolve again.

  • New

    Failed invoices are now visible on the payment detail, and administrators can retry one by hand. Invoice attempts run against a 24-hour budget instead of a fixed attempt count, back off between tries, recover automatically when a job stalls, and raise a notification when an invoice fails. A slow provider could previously burn through the attempts of a perfectly valid invoice.

  • Improved

    The invoice e-mail was rebranded, and organizations can now clear their VAT exemption code and note — once filled in, those fields could not be emptied again.

  • Improved

    User search in the add and edit subscription dialog moved to the server. It previously searched only within the newest 1000 users, so anyone outside that window could not be found at all, and the dialog was slow to open.

  • Fixed

    The choice between e-Invoice and e-Archive is never guessed any more. When the lookup that says whether the buyer is a registered e-invoice taxpayer cannot answer, the document waits instead of being issued, and a billing profile with no tax number no longer starts the process at all.

  • Fixed

    Lesson credits on manually managed subscriptions are granted per feature. Credits were only issued when a subscription was first created, so a subscription that became active through an edit — or a package whose features were corrected afterwards — could never receive the missing balance. Saving the subscription now fills in whatever is missing.

  • Fixed

    Rows in the payments list fall back to the payer’s e-mail address instead of showing nothing when the profile has no name.

Saksı AI

  • New

    Video solutions now come with an AI chat. The solution dialog is split in two: the video on the left, a chat of its own for that solution on the right. The assistant sees the question, its choices and the correct answer next to the content of the video. Video solutions uploaded earlier were processed as well, so they are chat-ready too.

  • Fixed

    Passage-based questions are sent to the chat as a whole. Only the sub-question you clicked used to be forwarded, leaving the passage and the sibling sub-questions out. A question with no topics attached, which used to break the chat entirely, was fixed as well.

Assignments

  • Fixed

    Instructors see and edit only the assignments they created. Every assignment in the organization was previously listed, another instructor’s assignment could be opened by URL, and a student’s assignment list showed what other instructors had given them.

  • Fixed

    An expired assignment becomes active again when its deadline is moved into the future, and the students’ assignment statuses are updated along with it.

Access & Permissions

  • New

    Contents, topic quizzes and mock exams were added to the sidebar for the saksiTutor role. Create, edit and delete stay hidden on those lists — the records are reviewed through the preview.

  • Fixed

    Fixed an issue where requests handled at the same time could pick up each other’s session. In rare cases a response could be finalized with another user’s session — most likely during a live session, when both sides keep the same page open at once.

  • Fixed

    The Zoom host link is visible to oversight staff only; it was previously exposed to students and tutors as well.

  • Fixed

    Taking a package off sale no longer removes the curriculum and courses it granted to an organization. An inactive package means "no longer sold", not "grant revoked" — organization admins and staff used to see less than platform administrators in that state.

  • Fixed

    A single deeper curriculum grant no longer strips the sub-topics off every other curriculum in the organization’s tree, which used to leave the trees showing top-level headings only.

Onboarding

  • Fixed

    The expertise picker in tutor onboarding also lists curricula granted to the organization from a deeper level. Those used to be dropped from the list together with their whole subtree.

  • Fixed

    A tutor’s edit card on the users page failed to open when the same curriculum topic had been saved for them more than once. The duplicate records were cleaned up and new ones are prevented. Retrying an interrupted tutor onboarding no longer files a second application either.

Website

  • New

    The blog became bilingual. Every post and category takes its own English title, subtitle, meta title, meta description and content, with a separate English publish switch. URLs are per language, an address carrying the other language’s slug is permanently redirected to the canonical one, and the pages emit their own canonical and hreflang tags. A post with no live English version opens with the Turkish content. Posts now show a last-updated date, and the nav and footer link reads "Eğitim Rehberi / Education Guide".

  • Fixed

    Unpublished blog drafts were readable through the public query; drafts are now restricted to authorized users.

  • Fixed

    Blog title search in the admin panel is no longer case-sensitive.

Version 2.2.2

Open the page for this release

Invoicing became configurable per organization, and a batch of live session, availability calendar and Saksı AI chat issues were resolved.

Payments & Invoicing

  • New

    Each organization can now configure its own e-Archive/e-Invoice provider (Paraşüt). Provider details are managed from a new "Invoice Provider" page in the sidebar, with secrets stored encrypted and masked in the interface. The page is restricted to platform administrators — organization admins do not see the provider credentials.

  • New

    A billing information tab was added to the profile page, so users can keep their invoice details up to date without waiting for checkout.

  • New

    The billing information step is now live in the checkout flow, alongside the completed invoicing pipeline. Checkout shows the card section first and billing below it; buyers with a stored billing profile see it collapsed the way a saved card is, and only open the form when they want to enter different details.

  • Fixed

    Retrying invoice creation no longer produces duplicate documents. If the request reaches the provider but the response never gets back to us, the retry now finds the existing invoice and e-document and continues with it instead of issuing a second one.

Live Sessions

  • Fixed

    Intro sessions keep their fixed 30-minute length when rescheduled. The reschedule screen previously also offered 60 and 90 minutes, which could turn an intro session into a full-length one.

  • Fixed

    When no Zoom account is available the session is no longer created at all. Previously the session was saved first and the Zoom account assigned afterwards, leaving a session with no meeting link behind on failure.

  • Fixed

    Failed intro session requests no longer show a misleading success message.

Availability & Matching

  • Improved

    Tutor search moved to the server. It previously searched only within the first 1000 users; now every tutor is searchable.

  • Fixed

    Every calendar and list view on the availability screens now starts the week on Monday. They previously started on Sunday, which did not match the live session calendars.

Saksı AI

  • Improved

    Math expressions and markdown formatting in chat were rebuilt. Formulas no longer break up paragraphs, inline expressions no longer interrupt the flow of a sentence, and raw LaTeX no longer flashes while a response streams in.

  • Improved

    The underlying AI model was upgraded to Gemini 3.5 Flash.

Notifications

  • New

    Read and unread tabs were added to the notification list for administrators.

  • Fixed

    The link in the assessment completed notification now points to the student’s own organization. It previously led to a 404 page in some cases.

  • Fixed

    Fixed an issue where the unread counter on the tabs could get stuck showing the wrong number.

Onboarding

  • Changed

    The guardian profile step was simplified. The disabled-looking "Skip" button is gone in favour of a single "Save & continue" button, and missing fields are reported with an inline error instead of locking the button. Continuing without selecting a student now completes onboarding directly.

Access & Permissions

  • New

    An "Editor" role was added for managing blog content. Editors can create and edit blog pages and categories, have no access to the rest of the platform, skip the onboarding wizard, and land directly on blog management when they sign in. They also get their own tab on the users page.

  • Fixed

    The curriculum options offered during onboarding are now limited to what the organization’s active packages grant, and the selection is validated on the server as well.

  • Fixed

    Tutors now see only the topics they are qualified for, plus their parent headings, in the curriculum trees. The same restriction was applied to the interactive content list.

Website

  • Improved

    English pages are served from English URLs — the language courses page now lives at /en/language-courses, for example. Old addresses redirect to the new ones.

Ready for Your Study-Abroad Journey ?

From IB, AP and SAT prep to your study-abroad application — we're with you at every step of the international education journey.

SaksıKampüs Logo

Study-abroad consultancy, IB · AP · SAT preparation and mentorship — your single address for the international education journey.

© 2026 Saksı Kampüs. All rights reserved.

Get detailed information about our programs.

Get in Touch