Did you know that GitHub supports table of contents by default 🤔
There are several services in the InNoHassle ecosystem for Innopolis University students. You can access some of them through the InNoHassle website.
The website uses the API of InNoHassle services: Events, Music Room, Search.
- 🗓️ Schedule
- 🔍 Check all academic groups, electives, sports sections, cleaning schedules
- 📲 Export schedules to your favorite calendar app on your devices
- 🌟 Add groups to favorites to see them in your personal account
- 🙈 Hide and show groups in your personal account
- 🔄 Choose the format of the schedule - for a day, for a week, or for a month
- 🎵 Music room
- 📅 See all bookings of the music room on a separate page
- 🧐 View your own bookings in your personal account
- 💰 Scholarship
- 📊 Calculate your scholarship based on expected grades or GPA
- 📈 Calculate what grades are needed to get the desired scholarship
- ℹ️ Get detailed information about the types of scholarships at the University
- 🔑 Sign in to your personal account using your student email
- 📚 All relevant academic groups are on your personal dashboard
- 📴 Offline access to the website in case of a bad internet connection
- 🌙 Dark and 🌞 light theme of the interface
- Node.js & TypeScript
- React & Vite & TanStack Router
- Vue & Veaury
- Styling: TailwindCSS, Iconify
- Formatting and linting: Husky, lint-staged, Prettier, ESLint
- Data fetching: OpenAPI Typescript, TanStack Query
- Calendar: FullCalendar, ical.js
- Install Node.js 20+, pnpm
- Install dependencies:
pnpm install - Start development server:
pnpm run dev - Open in the browser: https://local.innohassle.ru:3000
The page will be reloaded when you edit the code
Important
You must use HTTPS with domain https://local.innohassle.ru:3000 to access APIs with your account.
To work on several branches in parallel and run multiple frontend instances (different ports), see WORKTREE.md.
Tip
When the API types change, you can run pnpm run gen:api to generate new client types and functions.
Use this setup if you want to open the local dev version on a physical Android device over USB or Wi‑Fi.
- Enable Android developer options and USB debugging: Configure on-device developer options
- Install Android SDK Platform Tools (
adb): SDK Platform Tools release notes and downloads - (Linux) If the device is not detected, check USB/device setup: Run apps on a hardware device
Pick one method:
USB
- Enable USB debugging, plug in USB.
- Run
adb devices— status should bedevice.- If
unauthorized, confirm the RSA dialog on the phone and runadb devicesagain.
- If
Wi‑Fi — Wireless debugging (Android 11+, preferred)
- Developer options → Wireless debugging → enable it.
- Open Pair device with pairing code, note the IP, pairing port, and 6‑digit code.
- On the computer:
Enter the pairing code when prompted.
adb pair PHONE_IP:PAIRING_PORT
- Run
adb devices— the device should already appear.
Wi‑Fi — via USB first (Android versions older than 11)
- Connect via USB and confirm
adb devicesshowsdevice. - Enable TCP mode, then connect over Wi‑Fi and unplug USB:
Use the phone’s LAN IP (Settings → About / Wi‑Fi details).
adb tcpip 5555 adb connect PHONE_IP:5555 adb devices
Same for every connection method:
adb reverse tcp:3000 tcp:3000
pnpm run dev --hostOpen on Android: https://local.innohassle.ru:3000/
Note
For Wi‑Fi: phone and computer must be on the same network. If pairing or adb connect fails, try disabling VPN on the phone. After reconnecting Wi‑Fi or rebooting, you may need to pair / adb connect again, then re-run adb reverse.
- Restart ADB server:
adb kill-server && adb start-server - Check active reverse rules:
adb reverse --list
- Remove reverse rule for this port:
adb reverse --remove tcp:3000
- Build the application:
pnpm run build - Run the production-like server:
pnpm run preview --host - Open in the browser: https://local.innohassle.ru:3000
src/- main source codeapp/- entry point of the applicationroutes- routing via TanStack Router
components/- components split by pageslib/- utilities and domain-specific logicapi/- API clients and types
public/- static files
We are open to contributions of any kind. You can help us with code, bugs, design, documentation, media, new ideas, etc. If you are interested in contributing, please read our contribution guide.