Welcome to the CodeSpace Club official website! This is a modern, responsive web application built to showcase our tech community, events, blogs, and team.
- About
- Tech Stack
- Project Structure
- Getting Started
- Populating Data
- Available Routes
- Contributing
- Deployment
- Contact
CodeSpace is a tech club dedicated to fostering innovation, learning, and collaboration among tech enthusiasts. This website serves as our digital hub where members and visitors can:
- Learn about our club and mission
- Browse upcoming events and workshops
- Read technical blogs and articles
- Meet our team members
- Get in touch with us
This project is built with modern web technologies:
- Frontend Framework: React 18.3.1
- Build Tool: Vite
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: shadcn-ui
- Form Handling: React Hook Form with Zod validation
- Routing: React Router DOM v6
- Icons: Lucide React
- Animations: Tailwind CSS Animate
codespace-website/
βββ public/
β βββ robots.txt # SEO configuration
β βββ favicon.ico # Site favicon
βββ src/
β βββ assets/ # Static assets (images, logos)
β β βββ codespace-logo.png
β β βββ team-photo.png
β βββ components/ # React components
β β βββ ui/ # shadcn-ui components
β β βββ About.tsx # About section component
β β βββ BlogSection.tsx # Blog listing component
β β βββ ContactSection.tsx # Contact form component
β β βββ Footer.tsx # Footer with social links
β β βββ Header.tsx # Navigation header
β β βββ Hero.tsx # Hero section with logo
β β βββ NavLink.tsx # Navigation link component
β βββ data/ # Data files
β β βββ blogPosts.ts # Blog posts data
β β βββ events.ts # Events data
β βββ pages/ # Page components
β β βββ Index.tsx # Home page
β β βββ About.tsx # About page
β β βββ Blogs.tsx # Blog listing page
β β βββ BlogPost.tsx # Individual blog post page
β β βββ Events.tsx # Events listing page
β β βββ EventDetails.tsx # Individual event page
β β βββ Team.tsx # Team members page
β β βββ NotFound.tsx # 404 page
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utility functions
β βββ App.tsx # Main app component with routing
β βββ index.css # Global styles and design tokens
β βββ main.tsx # Application entry point
βββ supabase/
β βββ functions/ # Edge functions
β βββ send-contact-email/ # Contact form email handler
βββ tailwind.config.ts # Tailwind configuration
βββ vite.config.ts # Vite configuration
βββ package.json # Dependencies and scripts
- Node.js (v18 or higher) - Install with nvm
- npm or bun package manager
- Git
- Clone the repository
git clone <YOUR_GIT_URL>
cd <YOUR_PROJECT_NAME>- Install dependencies
npm install
# or
bun install- Start the development server
npm run dev
# or
bun devThe application will be available at http://localhost:8080
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
# Type checking
npm run type-check
# Lint code
npm run lintEdit src/data/blogPosts.ts:
export const blogPosts: BlogPost[] = [
{
id: "unique-slug",
title: "Your Blog Title",
excerpt: "Brief description of the blog post...",
content: "Full blog content in markdown or HTML...",
author: "Author Name",
date: "2024-01-15",
image: "/path-to-image.jpg",
tags: ["tag1", "tag2"]
},
// Add more posts...
];Edit src/data/events.ts:
export const events: Event[] = [
{
id: "unique-event-id",
title: "Event Title",
description: "Event description...",
date: "2024-03-20",
time: "6:00 PM - 8:00 PM",
location: "Event Location",
image: "/path-to-image.jpg",
registrationLink: "https://registration-link.com",
tags: ["workshop", "coding"]
},
// Add more events...
];- Place images in
src/assets/directory - Import in components:
import myImage from "@/assets/my-image.png";
// Use in component
<img src={myImage} alt="Description" />Edit src/components/Footer.tsx to update social media links:
const socialLinks = [
{ name: "LinkedIn", href: "https://www.linkedin.com/company/codespaceclub/", icon: Linkedin },
{ name: "Instagram", href: "https://www.instagram.com/codespaceclub/", icon: Instagram },
{ name: "Twitter", href: "https://x.com/codespaceclub", icon: () => <TwitterIcon /> },
{ name: "Github", href: "https://github.com/codespace-club", icon: Github },
];The contact form sends emails to: Codespace.it@glbitm.ac.in
To change this, edit src/components/ContactSection.tsx or the edge function in supabase/functions/send-contact-email/index.ts.
| Route | Component | Description |
|---|---|---|
/ |
Index | Home page with hero, about, blogs, and contact |
/about |
About | Detailed about page |
/blogs |
Blogs | Blog listing page |
/blogs/:id |
BlogPost | Individual blog post |
/events |
Events | Events listing page |
/events/:id |
EventDetails | Individual event details |
/team |
Team | Team members page |
* |
NotFound | 404 error page |
We welcome contributions from the community! Here's how you can help:
-
Fork the Repository
- Click the "Fork" button at the top right of this page
-
Clone Your Fork
git clone https://github.com/YOUR-USERNAME/codespace-website.git cd codespace-website -
Create a Feature Branch
git checkout -b feature/your-feature-name
-
Make Your Changes
- Follow the existing code style
- Add comments where necessary
- Test your changes thoroughly
-
Commit Your Changes
git add . git commit -m "Add: Brief description of your changes"
Commit message format:
Add:for new featuresFix:for bug fixesUpdate:for updates to existing featuresDocs:for documentation changes
-
Push to Your Fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Go to the original repository
- Click "New Pull Request"
- Select your fork and branch
- Describe your changes in detail
- Submit the pull request
- Code Quality: Write clean, readable, and maintainable code
- TypeScript: Use TypeScript for type safety
- Components: Create reusable, focused components
- Styling: Use Tailwind CSS and follow the design system in
index.css - Responsiveness: Ensure all changes work on mobile, tablet, and desktop
- Accessibility: Follow accessibility best practices
- Performance: Optimize images and avoid unnecessary re-renders
- Testing: Test your changes in different browsers
- π Bug fixes
- β¨ New features
- π Documentation improvements
- π¨ UI/UX enhancements
- βΏ Accessibility improvements
- π Translations
- π± Mobile responsiveness fixes
- β‘ Performance optimizations
- Use functional components with hooks
- Follow the existing folder structure
- Use semantic HTML elements
- Use meaningful variable and function names
- Keep components small and focused
- Extract reusable logic into custom hooks
- Use TypeScript interfaces for props and data structures
If you have questions or need help:
- Open an issue on GitHub
- Contact us at
Codespace.it@glbitm.ac.in - Join our community channels
- Email: Codespace.it@glbitm.ac.in
- Instagram: @codespaceclub
- LinkedIn: CodeSpace Club
- Twitter: @codespaceclub
- GitHub: codespace-club