A fast, modern academic portal for SRM University students.
Beautiful UI ยท Attendance tracking ยท Timetable download ยท Absence predictor ยท Marks overview
| Feature | Description |
|---|---|
| ๐ Dashboard | At-a-glance overview of attendance, marks, today's schedule |
| ๐ Timetable | Full 5-day schedule with downloadable 1920ร1080 image |
| โ Attendance | Per-subject attendance with color-coded status |
| ๐ฎ Absence Predictor | Select date range โ see exact attendance impact before skipping |
| ๐ Marks | Subject-wise marks with SGPA estimator |
| ๏ฟฝ๏ฟฝ๏ธ Academic Calendar | Month-wise calendar with holidays and class days |
| ๐ค Profile | ID card layout with stats, avatar picker |
| ๐ Dark / Light mode | System-aware theme |
| ๐ฑ PWA ready | Install as an app on any device โ no app store needed |
- Framework โ Next.js 16 (App Router, Edge Runtime)
- Language โ TypeScript 5
- Styling โ Tailwind CSS 4
- Data fetching โ TanStack Query v5 with localStorage persistence
- Animation โ Framer Motion
- API โ
reddy-api-srm(SRM academia API) - Download โ
dom-to-image-morefor timetable image export - Icons โ Lucide React
- State โ Zustand
- Node.js โฅ 18.x
- npm โฅ 9.x (or bun / pnpm)
- An SRM University student account (the app authenticates against SRM's servers)
git clone https://github.com/YOUR_USERNAME/bhagyasreeborse.git
cd bhagyasreeborsenpm installnpm run devOpen http://localhost:8080 in your browser.
Log in with your SRM student credentials (same as SRM Academia portal).
Note: No
.envfile is required for local development. The app connects directly to SRM's servers viareddy-api-srm.
Vercel is the fastest way to get this live for everyone to use.
Go to vercel.com โ Sign up (free) using GitHub, GitLab, or email.
# Initialize git if you haven't already
git init
git add .
git commit -m "Initial commit"
# Create a new repo on github.com, then:
git remote add origin https://github.com/YOUR_USERNAME/bhagyasreeborse.git
git push -u origin main- Go to vercel.com/new
- Click "Import Git Repository"
- Select your
bhagyasreeborserepo - Vercel auto-detects Next.js โ leave all settings as default
- Click Deploy ๐
Your app will be live at https://your-repo-name.vercel.app in ~2 minutes.
- In Vercel dashboard โ your project โ Settings โ Domains
- Add your domain (e.g.
bhagyasreeborse.in) - Update your domain's DNS with the A/CNAME records Vercel provides
- SSL is automatic โ your site is HTTPS instantly
Create a Dockerfile in the project root:
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
COPY --from=builder /app/public ./public
EXPOSE 3000
CMD ["node", "server.js"]Then run:
docker build -t bhagyasreeborse .
docker run -p 3000:3000 bhagyasreeborse- Push code to GitHub
- Go to app.netlify.com โ Add new site โ Import from Git
- Set build command:
npm run build - Set publish directory:
.next - Deploy
- Go to railway.app โ New Project โ Deploy from GitHub
- Select your repo
- Railway auto-detects Next.js and deploys
Share the deployed URL โ users can install it as a native-like app for free.
Android (Chrome):
- Open the URL in Chrome
- Tap โฎ menu โ "Add to Home screen"
- Tap Add โ appears as an app icon on the home screen
iOS (Safari):
- Open the URL in Safari
- Tap the Share button (box with arrow icon)
- Tap "Add to Home Screen"
- Tap Add
| Command | Description |
|---|---|
npm run dev |
Start development server on port 8080 |
npm run build |
Create production build |
npm run start |
Start production server |
npm run lint |
Lint all source files |
npm run lint:fix |
Auto-fix lint issues |
npm run type-check |
Run TypeScript type checking |
npm run clean |
Remove .next build cache |
src/
โโโ app/
โ โโโ app/ # Authenticated app pages
โ โ โโโ dashboard/ # Home dashboard
โ โ โโโ timetable/ # Timetable + image download
โ โ โโโ attendance/ # Per-subject attendance
โ โ โโโ marks/ # Marks + SGPA predictor
โ โ โโโ calendar/ # Academic calendar
โ โ โโโ profile/ # User profile & stats
โ โ โโโ components/ # Shared app components
โ โ โโโ AbsencePredictor.tsx
โ โ โโโ MobileNav.tsx
โ โ โโโ provider.tsx
โ โ โโโ sidebar.tsx
โ โ โโโ ...
โ โโโ auth/ # Login / logout flows
โ โโโ components/ # Root-level components
โ โโโ layout.tsx # Root layout + metadata + PWA
โโโ components/ui/ # Reusable UI primitives (button, dialog, etc.)
โโโ data/ # Static academic calendar & day-order data
โโโ hooks/ # TanStack Query hooks + Zustand stores
โโโ lib/ # API wrapper, utilities
โโโ types/ # TypeScript type definitions
โโโ utils/ # Helper functions
โโโ middleware.ts # Auth guard (redirects unauthenticated users)
This app uses cookie-based authentication via reddy-api-srm.
- Login calls SRM's authentication endpoint
- A session token is stored in a cookie
middleware.tsprotects all/app/*routes โ unauthenticated users are redirected to/auth/login- No passwords are stored anywhere in this app
Contributions are welcome! Whether it's a bug fix, new feature, UI improvement, or documentation โ all PRs are appreciated.
- Fork this repository
- Create a feature branch:
git checkout -b feature/your-feature-name
- Make your changes
- Verify nothing is broken:
npm run type-check && npm run lint - Commit with a clear message:
git commit -m "feat: add your feature description" - Push to your fork and open a Pull Request against
main
| Prefix | When to use |
|---|---|
feat: |
New feature |
fix: |
Bug fix |
ui: |
Visual / style change |
refactor: |
Code restructuring, no behaviour change |
docs: |
Documentation only |
chore: |
Maintenance, dependency updates |
- Focused โ one thing per PR
- TypeScript errors: 0
- Tested on both mobile and desktop
- Screenshot attached if it's a UI change
Found a bug? Open an issue with:
- A clear title
- Steps to reproduce
- Expected vs actual behaviour
- Device / browser / OS
- Screenshots or screen recording if possible
We are committed to making participation in this project a welcoming experience for everyone, regardless of age, background, experience level, or identity.
Encouraged behaviour:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints
- Gracefully accepting constructive feedback
- Focusing on what is best for the community
Unacceptable behaviour:
- Harassment, insults, or personal attacks
- Trolling or deliberately disruptive comments
- Publishing others' private information without consent
- Any other conduct that could reasonably be considered inappropriate
Violations can be reported by opening an issue or contacting the maintainer directly. All reports will be reviewed and investigated. Maintainers have the right to remove, edit, or reject contributions that do not align with this Code of Conduct.
MIT License
Copyright (c) 2026 Gowtham Sree Charan Reddy (gowthamrdyy)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
This project is not affiliated with, endorsed by, or officially connected to SRM Institute of Science and Technology in any way. It is an independent, open-source tool built by students for students.
All academic data is fetched directly from SRM's own servers using your credentials. Your login details are never stored by this application.
reddy-api-srmโ the SRM academia API that powers all data fetching- Next.js โ React framework
- Vercel โ hosting platform
- Tailwind CSS โ utility-first styling
- Lucide โ icon library
- TanStack Query โ data fetching & caching
- Framer Motion โ animations
Crafted with โค๏ธ by gowthamrdyy
For SRM students, by an SRM student.
โญ Star this repo if it helped you!