Skip to content

An unofficial study portal for NIT Bhopal, includes web app and a cross platform app for android, windows, and macOS

License

Notifications You must be signed in to change notification settings

iamwsumit/manit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

79 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NIT Bhopal Study Portal

A comprehensive open-source study portal for students of NIT Bhopal, available as a web application and a Flutter-based cross-platform app for Android, Windows, and macOS. The portal provides notes, previous year question papers (PYQs), assignments, and books for different subjects, organized in a structured manner.

πŸš€ Features

  • πŸ“‚ Subject-wise categorized resources (Notes, PYQs, Assignments, Books)
  • 🌐 Web Application (Hosted on Firebase Hosting)
  • πŸ“± Flutter App (Supports Android, Windows, macOS)
  • πŸ†“ Open-source & community-driven
  • πŸ“’ Announcements feature for updates
  • πŸ“– Easy contribution by adding new subjects and resources

πŸ›  Technologies Used

  • Frontend (Web App): HTML, CSS, JavaScript
  • Mobile/Desktop App: Flutter & Dart
  • Backend & Hosting: Firebase & GitHub
  • Database: JSON-based storage
  • Version Control: Git & GitHub

πŸ“ Project Structure

β”œβ”€β”€ content/              # Contains all study materials (PDFs)
β”‚   β”œβ”€β”€ subject1/
β”‚   β”‚   β”œβ”€β”€ notes/
β”‚   β”‚   β”œβ”€β”€ pyq/
β”‚   β”‚   β”œβ”€β”€ assignments/
β”‚   β”‚   β”œβ”€β”€ books/
β”‚   β”œβ”€β”€ subject2/
β”‚   β”‚   β”œβ”€β”€ ...
β”‚
β”œβ”€β”€ manitfirst/           # Flutter app source code
β”‚
β”œβ”€β”€ web/                  # Web app source code
β”‚
β”œβ”€β”€ announcement.json     # JSON file for notifications/announcements
β”‚
β”œβ”€β”€ data.json             # Main JSON database (metadata for all subjects & resources)

πŸ› οΈ Technical Architecture

The project consists of three main components:

  1. Web Application (/web)

    • Simple static website with HTML, CSS, and JavaScript
    • Hosted on Firebase Hosting (deployment handled by me)
  2. Flutter Application (/manitfirst)

    • Cross-platform application supporting:
      • Android
      • Windows
      • macOS
  3. Content Management (/content)

    • Organized repository of PDF resources
    • Subject-wise categorization

πŸ“‚ Data Structure

The application uses two main JSON files for data management:

  1. data.json

    {
      "subject_code": {
        "name": "Subject Name",
        "data": {
          "notes": [
            {
              "title": "Resource Title",
              "desc": "Resource Description",
              "link": "Raw GitHub URL to PDF"
            }
          ],
          "pyq": [...],
          "assignments": [...],
          "books": [...]
        }
      }
    }
  2. announcement.json

    {
      "notifications": [
        {
          "author": "Your Name (e.g., 'By Sumit Kumar')",
          "date": "Date (e.g., '10 Feb 2025')",
          "title": "Title of the announcement",
          "desc": "Description about the announcement",
          "link": "Optional URL if you want to redirect user to specific webpage"
        }
      ]
    }

πŸ’» Setup & Installation

To contribute or run the project locally, follow these steps:

πŸ”Ή Requirement

  1. For Web Development:

    • Visual Studio Code with "Live Server" extension
    • A modern web browser
  2. For Flutter Development:

    • Flutter SDK (Latest stable version)
    • Dart SDK
    • Android Studio (for Android development)
    • Xcode (for macOS development)
    • Visual Studio (for Windows development)
    • VS Code with Flutter and Dart extensions
  3. Version Control:

    • Git

πŸ”Ή Clone the Repository

git clone https://github.com/iamwsumit/manit.git
cd manit

πŸ”Ή Running the Web App Locally

Since the web app is a static website, you can run it using a Live Server Extension in VS Code:

  1. Open the web/ folder in VS Code.
  2. Install the Live Server extension if not already installed.
  3. Right-click index.html and select Open with Live Server.
  4. The site will open in your browser at http://127.0.0.1:5500/ or a similar address.

πŸ”Ή Running the Flutter App

cd manitfirst
flutter pub get  # Fetch dependencies
flutter run      # Run the app (Choose Android/Windows/macOS)

🀝 How to Contribute

We welcome contributions! Follow these steps to add new resources, subjects, or improve the app:

1️⃣ Fork the Repository

Click the Fork button on GitHub and clone your forked repo locally.

2️⃣ Add Resources or Make Changes

  • Adding Study Resources

    • Add your PDF resources for notes, PYQs, assignments, or books to the respective directory under /content/[subject]/[category]

    • Update data.json with the resource information:

      {
          "subject_id": {
              "name" : "Subject Name",
              "data": {
                  "category": [
                      {
                          "title": "Your Resource Title",
                          "desc": "Brief Description",
                          "link": "Raw GitHub URL to your PDF"
                      }
                  ]
              }
          }
      }
  • Modifying Web/Flutter UI:

    • Make UI/UX changes inside the web/ or manitfirst/ directories accordingly.
  • Adding Announcements:

    • Update announcement.json with a new announcement entry.

3️⃣ Commit & Push Changes

git add .
git commit -m "Added new subject/resource/UI improvement"
git push origin your-branch-name

4️⃣ Create a Pull Request

Go to the GitHub repo and create a Pull Request (PR) describing the changes. The project maintainer will review and merge it.

Pull Request Guidelines

  • Ensure all PDFs are properly formatted and readable
  • Test links before submitting
  • Follow existing code style and conventions
  • Include clear commit messages
  • Add documentation for new features

Technical Notes

  • The platform only supports PDF files currently
  • All resource links must be raw GitHub URLs
  • The web application is a static website hosted on Firebase (deployment handled by me)
  • Flutter app follows material design guidelines
  • No backend server required - all data is managed through JSON files

πŸ“’ Community & Support

Have questions or suggestions? Connect with us:

  • Open an issue on GitHub
  • Join discussions in the GitHub Discussions section
  • Share feedback via PR comments

Or Contact me :


πŸ“œ License

This project is licensed under the MIT License – you're free to use, modify, and distribute it!


🎯 Happy Learning & Contributing! πŸš€

About

An unofficial study portal for NIT Bhopal, includes web app and a cross platform app for android, windows, and macOS

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •