Skip to content

Commit b019eab

Browse files
Update README.md
1 parent 484fcf0 commit b019eab

File tree

1 file changed

+196
-16
lines changed

1 file changed

+196
-16
lines changed

README.md

+196-16
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,216 @@
1-
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
1+
2+
# IIITV Coding Club Website
3+
4+
Welcome to the new repository for the **IIITV Coding Club** website! This project is part of the **Contribut-a-thon**, and we are excited to have you contribute. This document will guide you through the project structure, setup, and contribution process.
5+
6+
## Table of Contents
7+
8+
- [Introduction](#introduction)
9+
- [Features](#features)
10+
- [Tech Stack](#tech-stack)
11+
- [Project Structure](#project-structure)
12+
- [Getting Started](#getting-started)
13+
- [Prerequisites](#prerequisites)
14+
- [Installation](#installation)
15+
- [Environment Variables](#environment-variables)
16+
- [Running the Project](#running-the-project)
17+
- [Contribution Guidelines](#contribution-guidelines)
18+
19+
## Introduction
20+
21+
This is the official website for the **IIITV Coding Club**, built with modern web technologies. The project is hosted on Vercel and aims to showcase club activities, blogs, events, and more. We encourage you to explore the project and contribute to its development!
22+
23+
## Features
24+
25+
- User authentication system (Sign up, login, reset password)
26+
- Blog publishing platform
27+
- Event management system
28+
- Responsive design
29+
- Integration with Supabase for backend services
30+
31+
## Tech Stack
32+
33+
- **Frontend:** Next.js, React
34+
- **Backend:** Supabase, REST APIs
35+
- **Styling:** Tailwind CSS
36+
- **Deployment:** Vercel
37+
- **Database:** Supabase (PostgreSQL)
38+
- **Auth:** Supabase Auth
39+
40+
## Project Structure
41+
42+
```
43+
/iiitvcc
44+
├── .github # GitHub-specific configurations
45+
│ └── workflows # GitHub CI/CD Action workflows
46+
├── .gitignore # Specifies files and directories to be ignored by Git
47+
├── components.json # JSON file to define components or modules in the project
48+
├── next-env.d.ts # TypeScript environment definitions for Next.js
49+
├── next-sitemap.config.js # Configuration for generating sitemaps
50+
├── next.config.mjs # Next.js configuration file
51+
├── package-lock.json # Snapshot of dependencies installed
52+
├── package.json # Project metadata and dependencies
53+
├── postcss.config.mjs # Configuration for PostCSS (used with Tailwind CSS)
54+
├── public # Static assets for the project
55+
├── README.md # The file you are reading
56+
├── src # Source code of the project
57+
│ ├── app # Application-specific logic and pages
58+
│ │ ├── account # Account-related pages and components
59+
│ │ │ ├── components # Account-specific reusable components
60+
│ │ │ ├── hooks # Custom React hooks related to accounts
61+
│ │ │ │ └── useAuth.tsx # Hook to handle authentication logic
62+
│ │ │ ├── page.tsx # Account main page layout
63+
│ │ │ └── utils # Utility functions related to accounts
64+
│ │ ├── api # API routes for the application
65+
│ │ │ ├── logout # API endpoint for logging out
66+
│ │ │ ├── rest # RESTful API structure
67+
│ │ │ │ └── v1 # Version 1 of the REST API
68+
│ │ │ │ ├── isUserAdmin # Endpoint to check if a user is an admin
69+
│ │ │ │ ├── isUsername # Endpoint to validate usernames
70+
│ │ │ │ └── users # Endpoint for user-related operations
71+
│ │ ├── auth # Authentication logic and pages
72+
│ │ │ ├── action.tsx # Actions related to authentication
73+
│ │ │ ├── callback # OAuth callback handling
74+
│ │ │ ├── component # Reusable components for authentication
75+
│ │ │ ├── confirm # Route for email confirmation
76+
│ │ ├── blogs # Blog-related pages and components
77+
│ │ │ ├── components # Reusable blog components (e.g., blog cards)
78+
│ │ │ ├── fetchBlogs.jsx # Logic for fetching blogs
79+
│ │ │ ├── layout.tsx # Blog page layout
80+
│ │ ├── contact_us # Contact page for the application
81+
│ │ │ ├── components # Contact-related components
82+
│ │ │ ├── layout.tsx # Contact page layout
83+
│ │ │ └── styles.css # Styles specific to the contact page
84+
│ │ ├── event # Single event page
85+
│ │ │ └── [id] # Dynamic route for individual events
86+
│ │ │ ├── components # Components related to an event
87+
│ │ │ │ └── eventPoster.jsx # Component to display event poster
88+
│ │ ├── events # Events listing page
89+
│ │ ├── favicon.ico # App-specific favicon
90+
│ │ ├── globals.css # Global styles for the app
91+
│ │ ├── home # Home page and layout
92+
│ │ │ ├── components
93+
│ │ │ │ └── hero-parallax.tsx # Hero section with parallax effect
94+
│ │ │ ├── layout.tsx # Home page layout
95+
│ │ ├── layout.tsx # Global layout wrapper
96+
│ │ ├── members # Members section
97+
│ │ │ ├── data.json # Data for members
98+
│ │ └── test_api # Test API page for demonstration
99+
│ ├── components # Global reusable components
100+
│ │ ├── error_dialog.tsx # Component for error dialogs
101+
│ │ ├── footer.jsx # Footer component
102+
│ │ ├── navbar.jsx # Navigation bar component
103+
│ │ ├── ui # UI components (e.g., buttons, inputs)
104+
│ │ │ ├── button.tsx # Reusable button component
105+
│ │ │ ├── alert.tsx # Alert component for notifications
106+
│ │ │ ├── input.tsx # Input field component
107+
│ │ │ └── switch.tsx # Switch/toggle component
108+
│ ├── lib # Utility functions and libraries
109+
│ │ └── utils.ts # Generic utility functions
110+
│ ├── middleware.ts # Middleware for handling authentication, etc.
111+
│ ├── styles # Global styles for the project
112+
│ │ ├── blogs.css # Styles specific to the blog section
113+
│ │ ├── footer.css # Styles for the footer
114+
│ └── utils
115+
│ └── supabase # Supabase client and server configurations
116+
│ ├── client.ts # Initialize and export the Supabase client
117+
│ ├── middleware.ts # Middleware to handle Supabase session
118+
│ └── server.ts # Server-side Supabase logic
119+
├── tailwind.config.ts # Tailwind CSS configuration file
120+
└── tsconfig.json # TypeScript configuration file
121+
```
2122

3123
## Getting Started
4124

5-
First, run the development server:
125+
### Prerequisites
126+
127+
Ensure you have the following installed:
128+
129+
- **Node.js** (v14.x or above)
130+
- **npm** or **yarn**
131+
- A **Supabase** account
132+
133+
### Installation
134+
135+
1. Clone the repository (new branch):
136+
137+
```bash
138+
git clone -b new https://github.com/yourusername/iiitvcc.git
139+
cd iiitvcc
140+
```
141+
142+
2. Install dependencies:
143+
144+
```bash
145+
npm install
146+
# or
147+
yarn install
148+
```
149+
150+
### Environment Variables
151+
152+
To run the project, you need to set up environment variables. Create a `.env.local` file in the root directory and add the following:
153+
154+
```
155+
NEXT_PUBLIC_SUPABASE_URL=<your-supabase-url>
156+
NEXT_PUBLIC_SUPABASE_ANON_KEY=<your-supabase-anon-key>
157+
SUPABASE_STORAGE_URL=<your-storage-url>
158+
NEXT_PUBLIC_PROJECT_ID=<your-project-id>
159+
NEXT_PUBLIC_BUCKET=web_data
160+
```
161+
162+
You can find these variables in your Supabase project settings.
163+
164+
## Running the Project
165+
166+
To start the development server:
6167

7168
```bash
8169
npm run dev
9170
# or
10171
yarn dev
172+
```
173+
174+
The website will be available at `http://localhost:3000`.
175+
176+
To build the project for production:
177+
178+
```bash
179+
npm run build
11180
# or
12-
pnpm dev
13-
# or
14-
bun dev
181+
yarn build
15182
```
16183

17-
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
184+
## Contribution Guidelines
18185

19-
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
186+
We welcome contributions from everyone! To contribute:
20187

21-
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.
188+
1. Fork the repository and create your branch:
22189

23-
## Learn More
190+
```bash
191+
git checkout -b feature/your-feature-name
192+
```
24193

25-
To learn more about Next.js, take a look at the following resources:
194+
2. Make your changes, then commit them:
26195

27-
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
28-
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
196+
```bash
197+
git commit -m "Add feature: description of feature"
198+
```
29199

30-
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
200+
3. Push to your forked repository:
31201

32-
## Deploy on Vercel
202+
```bash
203+
git push origin feature/your-feature-name
204+
```
33205

34-
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
206+
4. Open a pull request to the main repository.
35207

36-
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
208+
Before submitting, ensure your code adheres to our coding standards and passes all linting and testing checks.
209+
210+
### Code Linting
211+
212+
We use **Prettier** to maintain code quality. Run the following command to lint your code:
213+
214+
```bash
215+
npm run pretty
216+
```

0 commit comments

Comments
 (0)