First off, thank you for considering contributing to PrepStack! It’s people like you who make PrepStack an amazing hub for academic success.
This guide is designed to make contributing easy, transparent, and rewarding for developers and students of all experience levels.
We are committed to providing a welcoming, inclusive, and harassment-free environment. We expect all contributors to:
- Be respectful and collaborative.
- Provide constructive feedback.
- Keep academic resources accurate, organized, and free of plagiarism.
If you find a bug, please check the Issues list first to make sure it hasn't been reported already. If not, open a new issue with:
- A clear, descriptive title.
- Steps to reproduce the issue.
- Expected vs. actual behavior.
- Screenshots or error logs (if applicable).
Have an idea to make PrepStack better? We'd love to hear it! Open a feature request issue and describe:
- The problem this feature solves.
- How the feature should work.
- Mockups or structural concepts (if available).
- Fork the repository and create your branch from
main:git checkout -b feature/amazing-feature-name
- Make your changes following our coding standards.
- Commit your changes with clear, descriptive commit messages:
git commit -m "feat: add PDF zoom functionality to student dashboard" - Push your branch to your fork:
git push origin feature/amazing-feature-name
- Open a Pull Request (PR) against the
mainbranch of PrepStack.
To set up the workspace for code development:
- Clone your fork of the repository:
git clone https://github.com/YOUR-USERNAME/PrepStack.git
- Install local dependencies:
npm install
- Run the Vite development server:
npm run dev
- Build for production to check for bundler errors:
npm run build
To maintain a clean codebase, we enforce linting and component structures:
- Linting: Run
npm run lintbefore committing to catch formatting and syntax issues. - Styling: We use TailwindCSS for responsive and modular design. Avoid writing inline styling.
- State Management: Keep components pure and leverage React Hooks (
useState,useEffect,useCallback) efficiently. - Icons: Use
lucide-reactfor system iconography to ensure visual consistency.
If you are contributing study materials or academic documents directly through the app interface:
- Accuracy: Ensure notes are high-quality, readable, and match the official Mumbai University syllabus.
- Sparsity & Compression: Keep file names short and descriptive.
- Plagiarism: Do not upload copyrighted textbooks or materials without permission. Stick to handwritten notes, PYQ solutions, or lab manuals.
Thank you for building a smarter, unified academic ecosystem! Happy coding! 🚀