Welcome to the GDSC McMaster U Website project repository! 👋
This project aims to create a modern website for the McMaster chapter of Google Developer Student Club (GDSC). The website is designed to provide information about events, resources, and opportunities for students interested in technology and development.
Below is an overview of the key technologies utilized in this project. Familiarity with these technologies will be beneficial for making contributions:
- Next.JS: A framework that provides a seamless development experience.
- Tailwind CSS: A utility-first CSS framework for rapid UI development, following Material Design principles.
- Sanity CMS: A customizable content management system that allows for easy content updates.
- Firebase Hosting: Fast and secure hosting for web applications.
- Jest: Testing library.
- GitHub Actions: CI/CD for automating workflows and deployments.
For more detailed information on each technology, be sure to check out their official documentation.
Everyone in the GDSC McMaster U Chapter is encouraged to contribute to this project! Please take a moment to review our contribution guidelines.
To contribute to the project, follow these steps:
-
Create a Branch: Branching can be done directly within Jira by creating a branch from your ticket. This is the easiest way to branch and ensure correct naming conventions. Ensure you branch off from the
main
branch based on your Jira ticket. -
Naming the Branch: Contribution should mainly be made through feature branches off of main. Name your branch using the prefix
feature/
followed by the auto-generated ticket name.feature/YOUR_TICKET_NAME
-
Commit Changes: Make your changes and commit them to your branch. Be sure to write clear and descriptive commit messages.
-
Push Changes: Once you are ready, push your changes to the remote repository.
-
Test Changes: Before you are ready to deliver your changes they must be tested. Write a suite of unit tests using Jest to ensure the correctness of your code.
-
Create a Pull Request: After pushing changes, create a pull request to merge your feature branch into
main
. Be sure to link your Jira ticket in the pull request description. -
Review and Merge: Your pull request will be reviewed by a team member. Once approved, your changes will be merged into the
main
branch. -
Delete Branch: After your changes have been merged, delete your feature branch to help keep our repository clean.
To run this project locally, follow these steps:
-
Clone the Repository: Clone the repository to your local machine using the following command:
git clone
-
Install Dependencies: Navigate to the project directory and install the project dependencies using npm:
npm install
-
Start the Development Server: Run the following command to start the development server:
npm run dev
-
Open in Browser: Visit
http://localhost:5173
in your browser to view the project.
This project is deployed using Firebase Hosting. To deploy the project, follow these steps:
-
Build the Project: Use the following command to build the project for deployment:
npm run build
-
Deploy to Firebase: Deploy the project to Firebase Hosting with the following command:
firebase deploy
-
Open in Browser: Visit the provided URL to view the live deployment of the project.
The project structure is organized as follows:
website
├── app
│ ├── __tests__
│ │ ├── ...
│ ├── components
│ │ ├── ...
│ ├── events
│ │ ├── ...
│ ├── newsletters
│ │ ├── ...
│ ├── studio
│ │ ├── ...
│ ├── global.css
│ ├── icon.svg
│ └── layout.tsx
│ └── page.tsx
├── sanity
│ ├── lib
│ │ ├── ...
│ ├── schemaTypes
│ │ ├── ...
│ ├── env.ts
│ └── structure.ts
├── types
│ └── sanity.ts
├── .env.local
├── .eslint.json
├── .gitignore
├── jest.config.ts
├── jest.setup.ts
├── next-env.d.ts
├── next.config.mjs
├── package-lock.json
├── package.json
├── postcss.config.mjs
├── README.md
├── sanity.cli.ts
├── sanity.config.ts
├── tailwind.config.ts
└── tsconfig.json