Opening Davan…
📣 BROADCAST
👋
Welcome
STUDENT
Great to have you back!
Continue to Dashboard →
Connecting…
Portal v11.101
Davan
DAVAN & NUTANA
Student Portal · Davangere
STUDENT LOGIN
Sign in with your URN. Your password is the phone number submitted to college.
⚠
🪪
🔒
Remember me on this device

Forgot password? Contact your administrator.

Hostel staff / guest? Hostel login

📲 Install Widget App
See your schedule on your Android home screen — no app opening needed.
⬇️ Download APK
Install → long-press home screen → Widgets → Davan Student → drag to place.
ADMIN LOGIN
Sign in with your admin credentials.
⚠
👤
🔒

Only admin / manager / vp roles.

Davan
DAVAN & NUTANA
Student Portal · Davangere
?
—
—
✓ Signed in
ℹ Default password is your registered phone number. Change it to secure your account.
CHANGE PASSWORD
New password must be a valid 10-digit phone number.
⚠
✓
🔒
📱
Must be exactly 10 digits
📱
or
Davan
DAVAN & NUTANA
Student Portal · Davangere
ℹ We need your date of birth to complete your student profile. This is required once.
DATE OF BIRTH
Enter the date of birth as it appears on your college records.
⚠
✓
Tap to pick your date of birth
DAVAN HOSTEL
📱 My widget
Type the 6-letter code shown at the bottom of your widget, then tap 🔄 on the widget.
?
STUDENT DASHBOARD
Overview of your attendance across all subjects.
At a Glance
Overall Att.
—
tap to view →
Subjects OK
—
tap to view →
Shortage
—
tap to view →
Today's Classes
—
tap to view →
Notices
—
tap to view →
Semester
—
tap to view →
Attendance Summary
⏳
Loading…
Recent Notices
⏳
Loading…
Your Summary
⏳
Loading…
ATTENDANCE
Your subject-wise attendance summary.
⏳
Loading…
INTERNAL MARKS
IA1 and IA2 marks per subject.
⏳
Loading…
INTERNAL TIMETABLE
Internal exam schedule.
⏳
Loading…
TIMETABLE
Your weekly class schedule.
⏳
Loading…
LESSON PLAN
Syllabus progress for your class.
⏳
Loading…
NOTICES
Announcements from your college.
⏳
Loading…
Loading…
HOSTEL
Your room, today's food, hostel notices and leave requests.
NOTIFICATION LOG
Class reminders and daily summaries your widget has sent you this week.
GET THE DAVAN STUDENT WIDGET
REPORT CARD
Attendance, internals, previous results & notifications.
⏳
Loading…
ACADEMIC CALENDAR
Upcoming events, holidays and exams.
Admin Panel
📅 VIEWING:
VISIBILITY CONTROLS
Toggle what students can see. Changes take effect immediately.
✓Saved
🌐 Global — applies to ALL students
Attendance
Show attendance % and breakdown
Internals
Show IA1 and IA2 marks
Semester Marks
Show semester / exam results
Timetable
Show weekly class schedule
Internal Timetable
Show internal exam schedule & seat allocation
Report Card
Show the Report Card tab (attendance + results summary)
DOB & Horoscope DEFAULT OFF
Mandatory DOB collection at first login, dashboard horoscope card, sidebar/header zodiac line
Birthday Toasts DEFAULT OFF
7-day countdown quotes, birthday-day wishes (up to 3/day), belated wishes. Needs DOB & Horoscope ON to have a birthdate to work from.
Resume Last Page (student) DEFAULT OFF
On refresh, reopen whichever page a student was on instead of always landing on the Dashboard. Student portal only — admin's own tab-memory is unaffected either way.
Step 2 Nudge — Scheduled DEFAULT OFF
OFF: the "add birth time & place" banner shows on EVERY login/reload until filled in or dismissed that session. ON: only nudges on the 5th login, then the 10th, then every 10th after — a schedule instead of every time.
Lesson Plan
Show syllabus progress
Faculty Photos
Show faculty photo beside every name (off = teacher emoji)
Past Semesters (archive)
Year dropdown to view old semesters. Off = the portal never reads the archive (saves DB2). On = each student checks once per semester; an old semester, once opened, stays on their phone
📊 Publish results to students
New results or revaluation: 1) upload in results.html → 2) sync as usual → 3) press Publish. Each student gets only their own results + ranks; next time only students whose marks changed download again.
Social — Dashboard Banner
Dismissible "Stay in the loop" banner at the top of Home
Social — Sidebar Card
Permanent "Official Channels" card in the student sidebar
Social — Once-a-day Toast
"One last thing" popup on first login of the day
Social — Login Page Footer
"Follow us" + WhatsApp/Call the office, below the sign-in form
⚠️
Overrides beat the global toggle. If a class or student below has an override row, ANY flag marked ✓ or ✗ on that row will keep showing/hiding that section for them no matter what the global switch above says — that's the usual reason "I turned it off globally but a few students still see it." A flag shown as · is not overridden and correctly follows the global setting.
Click a chip to cycle · → ✓ → ✗ → ·. To fully clear a student/class exception, either set every flag back to · or just delete the override row with 🗑.
🏫 By Class override
Priority: byUrn > byClass > Global. New rows start with every flag unset (·) — inheriting global — until you explicitly click a chip.
🪪 By URN override
📅 Semester Dates — drives student dashboard start-date note
Sets davan_pub/session_config in this portal's own database. If left blank, the dashboard falls back to a guessed 13 Jul start date — set this to show the real date.
📣 Social & Contact Links
Powers every "Follow us" nudge students see (login page, dashboard banner, sidebar card, once-a-day toast) plus the login page's WhatsApp/Call the office links. Sets controls/socialLinks — change a number or link here without any code deploy.
⚡ Report Card Cache Settings
Report Card results data is cached on each student's device so it opens instantly instead of re-downloading the whole institution's results every time. These two settings control that caching. Stored separately from the main database (Firestore) so this stays editable even if the main database is under heavy load.
Below this age, opening Report Card serves cache with zero extra database reads.
Students can always tap "🔄 Refresh Data" on Report Card to force fresh data sooner.
🎓 SEMESTER ARCHIVES
Run this ONCE at the start of each new semester — it freezes the outgoing semester's data (students, timetable, lesson plan) so it stays viewable under "past" in the student portal, then moves students into the new semester. Everything below explains exactly what will happen before anything is written.
📍 Portal is currently configured as …. To change this (e.g. at the next rollover), edit AY_CONFIG near the top of the code.
📚 Archived semesters so far
⏳
Loading…
STEP 1 🎓 Promote & Archive Roster
Freezes the CURRENT student roster (names, classes, semesters) into the archive, then moves every student to their NEXT semester (e.g. Sem2→Sem3) and marks final-semester students as passed out. This does NOT touch attendance or lesson plan data — that's Step 2.
STEP 2 📦 Archive Attendance, Timetable & Lesson Plan
Freezes the ACADEMIC data for the outgoing semester — attendance %, subject-wise results, lesson-plan syllabus progress, AND the academic calendar (holidays/events for that semester). Run this AFTER Step 1. Students will then see this frozen snapshot when they switch to "past" in their portal dropdown.

Important: for the timetable to archive correctly, make sure the mother app has the OLD semester's timetable loaded (not the current one) before running this.
STEP 3 📲 Push Current Semester Data
In the MOTHER APP: load the NEW/current semester's timetable and click "📲 Push Timetable to Portal" so students see the new schedule going forward. This step happens in the mother app, not here.
APP THEME
Pick the color palette every student and admin sees. Applies instantly, portal-wide.
✓Saved
🌐 Active theme — applies to ALL users
Current: —
STUDENT LOGINS
Manage student login entries. URN = login id, phone = default password.
ℹ
URNNameClassPhone / PasswordStatusLast LoginActions
⏳
Loading…
↔ Scroll sideways on smaller screens to see every column.
NOTICES & ANNOUNCEMENTS
Compose notices for all students, a class, or a specific URN.
📢 Compose Notice
⚠
✓
📢 Live Announcement Banner
Appears on all devices instantly. Leave blank to hide.
📲 Widget Notice
Shows a short status line on the home-screen student widget and here in the portal — e.g. "Fees due 5 Sep". Built once so future notices like this never need an app update, just this form.
✓
Loading…
📣 Broadcast Message
Shows a toast popup on all open devices within 1 second.
✓
Sent Notices
⏳
Loading…
Banner & Broadcast History
TIMETABLE
View and edit the master timetable from the mother app. Select a class to view all slots.
Auto-syncs to the student portal whenever this tab opens and the mother-app timetable has changed. Use Force Re-sync only if you need to push immediately without switching tabs.
📅
Select a class to view timetable
STUDENT LOGIN ACCOUNTS
Every student needs a Firebase Auth account before Phase 6 rules take effect. Without one they cannot open the portal at all.
Loading…
HOSTEL STUDENTS
Who has the widget, notifications on, ratings, skips and leave — hostel residents only.
Loading…
📶 WHO USES THE APP
Every current student: live now, website link, installed app, widget, stopped, never started - tap any box or number to see who.
DATA USAGE
Who is using the database, and are you inside the free tier.
Loading…
DIAGNOSTICS
Which reads are costing you, and what has gone wrong.
Loading…
WIDGET PAIRING HEALTH
Whether the pairing faults found on 17–18 Aug are still happening, for anyone.
Loading…
LESSON PLAN
Update syllabus progress per class and subject.
📚
Select a class to manage lesson plan
ACADEMIC CALENDAR
Full session calendar — live from admin Firestore (app_data/academic_calendar).
⏳
Loading…
LP SUBJECT EXCEPTIONS
Subjects selected here will be hidden from students in the Lesson Plan tab. Changes are saved to the database and apply instantly.
⏳
Loading subjects…
BANNED STUDENTS
Banned students cannot log in to the portal. Search by name or URN, filter by class.
🎓 PASSED-OUT ALUMNI
CURRENTLY BANNED
STUDENT WIDGET CONTROL
Manage the Android home-screen widget: per-student status, widget-only ban (portal login stays allowed), per-student feature toggles, and urgent messages that pin to a student's widget until acknowledged. Search by name or URN — same pattern as Banned Students.
🔮📱 Widget Horoscope — Who's Actually Seeing It ▾
Manual version entry (optional — auto-resolve already handles this once you install a new build on your own phone). Only raises the version, never lowers it.
⚠️ Kill-switch floor — widgets below this build number will be hard-blocked (after Publish Hard Block below). Type a build number, not a portal version.
w
Version
URGENT MESSAGE LOG
CLASS REMINDER NOTIFICATION — WORDING
This is the notification a student gets 15 minutes before each class. Edit it here and every widget picks it up on its next sync (within 30 minutes) — no app update needed. Available placeholders: {name} {class} {subject} {time} {faculty} {today} {tomorrow} {last} {next} {when} {mins} {campus} {sentAt}.
{when} and {mins} follow the lead time set above, so changing it from 15 minutes updates the wording automatically.
{last} = the most recent lesson-plan topic the faculty has ticked off for that subject. {next} = the very next topic after it, which is what should be covered today. A line whose placeholder comes back empty is dropped automatically, so nothing shows as a dangling label.
⏰ Before each class
How many minutes ahead of the class the reminder is sent.
minutes before
🌙 Nightly summary
Time each evening the next day timetable is sent.
NIGHTLY SUMMARY NOTIFICATION — WORDING
This is the nightly "Tomorrow" digest sent at the time set above. Edit it here and every widget picks it up on its next sync (within 30 minutes) — no app update needed. Available placeholders: {name} {today} {tomorrow} {tomorrowDay} {tomorrowShort} {classLine} {scheduleList} {sentAt} {institution} {campus}.
{name} = the student's own name (falls back to "Student" if somehow blank).
{scheduleList} = the numbered list of tomorrow's classes (or a "No classes listed" line if the day is free) — built by the widget, not a plain substitution.
{classLine} = the student's class label on its own line, or nothing at all if it isn't known — already includes its own line break, so don't add a blank line above/below it in your wording.
🗣 SECOND LANGUAGE
Which second language each student studies, so the widget, notifications and voice show only theirs (not "Kannada / Hindi"). Filled automatically from attendance where possible; students whose language is not known are asked once in the student app. You can change anyone any time - your choice always wins. Urdu and Sanskrit are self study (no class reminder).
Open this tab to load the list.
PAGE 6 — NEWS & RATES
Controls the News/Rates page on the widget. A scheduled GitHub Action (fetch_news.js) auto-fetches headlines, USD/INR, gold/silver rates and a daily quote, and writes them to db3 — you can override any field by hand below; an override sticks until you clear it or the next auto-fetch runs (auto-fetch will overwrite an unlocked override — turn "Lock" on to protect a manual value from being overwritten). Moved here from the Widget tab (2026-09-06) into its own tab as this section has grown to include multiple news sections beyond India/World.
GITHUB WORKFLOW TRIGGER (for instant fetch on save)
"Save source selection" below triggers fetch_news.js immediately (instead of waiting for the 45-min auto-schedule) via a small Cloudflare Worker that holds the real GitHub token as its own encrypted secret — the token never appears anywhere in this page or repo.
Page 6 visible on widget
Loading status…
Follow Us links visible on widget (every page, w115)
FOLLOW DAVAN · WIDGET w115+
GOLD · SILVER · CURRENCY (AUTO-FETCHED, IBJA)
Loading…
NEWS SECTIONS
Each section below lists its available RSS sources as checkboxes. Check one or more per section to include that source in the mix for that section. thehindu/bbcworld/bollywoodhungama/filmibeatkannada/toi/ndtv/ indianexpress/hindustantimes are all confirmed live and working (toi/ndtv/indianexpress/hindustantimes confirmed by Harsha directly, 2026-09-06 — Claude's own network tools couldn't reach those domains to verify independently, but Harsha's direct checks settle it). bbcindia is still a real, documented URL but not yet tested by anyone — treat it as "should work" until confirmed. If a source turns out broken, fetch_news.js's existing safe-failure pattern means it just contributes zero headlines to that section rather than breaking anything else.
MAX SHOWN:
✏️ Edit text (manual override)
MAX SHOWN:
✏️ Edit text (manual override)
MAX SHOWN:
MAX SHOWN:
DOB & BIRTHDAY
Horoscope-by-sign preview, opt-in rates, dashboard-card view tracking, and birthday-toast activity. This tab covers the PORTAL only — the widget has its own separate numbers under Widget Control, since portal and widget users are different, overlapping populations and should not be added together. Feature on/off toggles (DOB & Horoscope, Birthday Toasts, Step 2 Nudge Schedule) live in Portal Control, alongside every other feature toggle — not here, since this tab is viewers/analytics only.
🔮 Today's Horoscope — All 12 Signs
📊 Birth Time & Place — Opt-in Rate
Among students who have a DOB on file (mandatory once dobHoroscope is on for them), how many also gave time+place (optional, unlocks a full natal chart in place of Sun-sign-only). Counts students, not logins.
👁 Horoscope Card — Who's Actually Seeing It
The horoscope card sits below Recent Notices — on a phone that's below the fold, so a login does NOT mean the card was seen. This counts a real view event, fired by the student's browser only once the card actually scrolls into view (IntersectionObserver), not on page load.
🎉 Birthday Toast — Daily Activity
Counts students who saw ANY birthday-related toast (week countdown, day-of, or belated) on a given calendar day — sourced from the same birthdayLastShownYear/ birthdayWeekShownDays/birthdayDayShownCount fields the toast logic itself writes, so this reads real usage, not a separate log that could drift out of sync.
NIFTY
BharatStock is END-OF-DAY data, not a live tick feed — prices land after market close each trading day. The widget labels this as a "Close", never as live. Nifty stays hidden on the widget until the BHARATSTOCK_API_KEY GitHub secret is added — see setup below.
📈 Current Value
🔧 Setup — Where This Comes From
  1. Nifty is fetched by fetch_news.js (GitHub Actions), the same script that fetches News & Rates and horoscope data — not a separate script.
  2. It reads a BHARATSTOCK_API_KEY GitHub Actions secret — never typed into this portal, never committed to the repo. Get a free key at bharatstockapi.com.
  3. Add it: repo → Settings → Secrets and variables → Actions → New repository secret → name it exactly BHARATSTOCK_API_KEY.
  4. Until that secret exists, the fetch script logs "SKIPPED" and this tab (and the widget) simply show nothing — that's expected, not broken.
  5. If you're still using the key that was ever pasted directly in a chat session, generate a NEW one and revoke that old key — it must be treated as compromised.
LOGIN ACTIVITY
Every student login is recorded here in real time. Most recent logins shown first.
SOCIAL MEDIA
Clicks on the Follow Facebook/Instagram/YouTube nudges shown to students — banner (dashboard top), sidebar card, and the once-a-day toast.
ENGAGEMENT
Usage of the SGPA/CGPA calculator on the Report Card, plus student feedback (5-emoji ratings) on that calculator and on the recent Report Card update. Same click/roster pattern as Social Media above.
🧮 SGPA/CGPA CALCULATOR — USAGE
😊 CALCULATOR FEEDBACK
😊 REPORT CARD UPDATE FEEDBACK
🆕 LOGIN FEEDBACK (mandatory, first login)
A blocking popup shown once per student — right after their dashboard loads, before the social media toast — that they must answer to dismiss. Add as many emoji-rated questions as you like; each can be individually shown/hidden. Runs once per student per "round" — use Reset below to ask everyone again (e.g. after a new feature ships).
Enable Login Feedback
Master switch — off means students go straight to the dashboard/social toast as before
RESPONSES
📌 UPCOMING
📝 Thu 7 May — Degree 2nd Internals (1 hr each) ◆ 🎓 Mon 11 May — VACC I B.Com (T1) ◆ 🎓 Mon 11 May — VACC II B.Com (T1) ◆ 🎉 Sun 17 May — Farewell BCA, BBA & BCom (HOD) ◆ 📝 Sat 24 May — Session End ◆
⏳ Loading data info…
Photo
Pinch or scroll to zoom \u00b7 drag to pan \u00b7 double-tap to reset \u00b7 tap outside to close
?
—
—
⏳ Loading…