Skip to content

one-zero-eight/website

Repository files navigation

InNoHassle

Website | InNoHassle ecosystem

https://innohassle.ru

Lines of Code Bugs Vulnerabilities

Table of contents

Did you know that GitHub supports table of contents by default 🤔

About

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.

Services

  • 🗓️ 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

More features

  • 🔑 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

Technologies

Development

Getting started

  1. Install Node.js 20+, pnpm
  2. Install dependencies: pnpm install
  3. Set up pre-commit hooks (for formatting and linting): pnpm run prepare
  4. Copy environment variables file: cp .env.example .env.local
  5. Edit variables in .env.local if you want to use a different API server

    Do not change the ID of the trackers so that they are not enabled in development

  6. Set up your IDE to autoformat code with Prettier and use ESLint

When the API types change, run pnpm run orval to generate new client types and functions.

Run for development

  1. Start development server: pnpm run dev
  2. Open in the browser: http://localhost:3000

    The page will be reloaded when you edit the code

In order to use the API of the production server, you need to change the SameSite parameter of the token cookie in the browser (set None). Then the browser will be able to use the correct token to access the API from the local site.

Run for production

  1. Build the application: pnpm run build
  2. Run the production-like server: pnpm run preview
  3. Open in the browser: http://localhost:3000

Contributing

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.