The official frontend for the KSHITIJ-KIIT Spiritual Society website β built with React, Vite, and TailwindCSS.
"The Journey Inside" β Discover peace, purpose, and timeless wisdom with a community that grows together.
- Tech Stack
- Prerequisites
- Getting Started
- Project Structure
- How to Contribute
- Coding Guidelines
- Common Issues & Fixes
- Need Help?
| Tool | What it does |
|---|---|
| React 19 | JavaScript library for building user interfaces |
| Vite | Lightning-fast development server & build tool |
| TailwindCSS 4 | Utility-first CSS framework for rapid styling |
| Lucide React | Beautiful open-source icon library |
| ESLint | Catches code errors and enforces consistent style |
Make sure you have these installed before starting:
- Node.js (v18 or higher) β Download here
- Git β Download here
- VS Code (recommended editor) β Download here
Open a terminal and run:
node --version # Should show v18.x.x or higher
npm --version # Should show 9.x.x or higher
git --version # Should show git version 2.x.xClick the Fork button on the top-right of the GitHub repo page. This creates your own copy.
git clone https://github.com/<your-username>/kshitij-kiit.git
cd kshitij-kiit/frontendReplace
<your-username>with your actual GitHub username.
npm installnpm run devThe site will be live at http://localhost:5173 β open it in your browser!
| Command | What it does |
|---|---|
npm run dev |
Starts the local development server |
npm run build |
Creates an optimized production build in dist/ |
npm run preview |
Previews the production build locally |
npm run lint |
Checks your code for errors and style issues |
frontend/
βββ public/ # Static assets (images, icons)
β βββ backgroun.png # Hero section background
β βββ bubble.png # Interactive bubble icon
β βββ image.png # About Us section background
β βββ Logo.png # Society logo
βββ src/
β βββ components/ # π§© Reusable React components
β β βββ AboutUs.jsx # About Us section with interactive bubbles
β βββ App.jsx # Main app β Navbar, Hero, and page layout
β βββ index.css # Global styles and custom animations
β βββ main.jsx # App entry point (mounts React to DOM)
βββ index.html # HTML template
βββ vite.config.js # Vite configuration
βββ eslint.config.js # ESLint rules
βββ tailwind.config.js # TailwindCSS configuration (if present)
βββ package.json # Dependencies and scripts
| File | Purpose |
|---|---|
src/App.jsx |
The main component β contains Navbar, Hero section, and renders all page sections |
src/components/AboutUs.jsx |
Interactive "About Us" section with hover-triggered bubbles |
src/index.css |
Custom CSS animations (e.g., floating bubble keyframes) |
public/ |
Put images and static files here β accessible via /filename.png in code |
Always work on a new branch, never directly on main:
git checkout -b feature/your-feature-nameBranch naming examples:
feature/contact-sectionβ for new featuresfix/navbar-mobile-menuβ for bug fixesstyle/hero-responsiveβ for styling changes
Edit files in the src/ folder. Your browser will auto-refresh as you save!
npm run lintFix any issues before committing.
git add .
git commit -m "feat: add contact section with form"Commit message format:
feat: ...β new featurefix: ...β bug fixstyle: ...β styling/UI changesdocs: ...β documentation changesrefactor: ...β code restructuring
git push origin feature/your-feature-nameGo to the original repo on GitHub β click "New Pull Request" β select your branch β describe your changes β submit!
- One component per file β name the file the same as the component (e.g.,
ContactForm.jsx) - Place new components inside
src/components/ - Use functional components with hooks (
useState,useEffect)
// β
Good
const ContactForm = () => {
const [name, setName] = useState('');
return <form>...</form>;
};
export default ContactForm;We use TailwindCSS utility classes β no need to write custom CSS files for most things:
// β
Use Tailwind classes directly in JSX
<div className="bg-white p-6 rounded-xl shadow-lg">
<h2 className="text-2xl font-bold text-gray-900">Hello</h2>
</div>Helpful Tailwind resources:
- Use
constandletβ nevervar - Use arrow functions for components
- Keep components small β if it's over 100 lines, consider splitting it
- Add meaningful comments for complex logic
- Use relative imports:
import MyComponent from './components/MyComponent'
# Delete node_modules and lock file, then retry
rm -rf node_modules package-lock.json
npm install# Kill the process using the port (Windows)
netstat -ano | findstr :5173
taskkill /PID <PID_NUMBER> /F
# Or just use a different port
npm run dev -- --port 3000- Make sure the dev server is running (
npm run dev) - Hard refresh:
Ctrl + Shift + R - Check the terminal for any error messages
# See all errors with details
npm run lint
# Most errors are unused imports β remove them!Not sure where to start? Try one of these beginner-friendly tasks:
- π¨ Make the Hero section responsive for mobile screens
- π± Build a mobile navigation menu (hamburger menu)
- πΈ Create a Gallery section component
- π Add a Contact Us section with a form
- π Add smooth scroll animations between sections
- βΏ Improve accessibility (alt text, ARIA labels, keyboard navigation)
- π Found a bug? Open an Issue on GitHub
- π¬ Have a question? Reach out to the maintainers or ask in the society group
- π New to React? Start with the official React tutorial
- π¨ New to Tailwind? Try the Tailwind playground
Made with π by the KSHITIJ-KIIT community