Google Developer Student Clubs (GDSC) is a student-led community backed by Google Developers aimed at empowering undergraduate students from all disciplines to grow their knowledge in technology, build solutions for their local communities, and connect with other members from the Google community.
This is the official website for the University of Toronto Mississauga Google Developer Student Club (UTM GDSC). The frontend is built with Next.js with Material UI installed.
Except where otherwise noted, the is project is licensed under the LGPL 2.0 or later license.
-
install dependencies:
> npm install -
initialize the pre-commit hook:
[!WARNING] Husky will error if you are using GitHub Desktop on Windows. If this is the case, skip this step or uninstall the hook by running
npx husky uninstallin the root project directory.> npx husky install -
start the app:
> npm run dev
Open http://localhost:3000 with your browser to see the result.
To add the GTM ID, create a .env.local file or set the NEXT_PUBLIC_GTM_ID environment variable to the GTM ID.
For example, if the GTM ID is GTM-XXXXXXX, then the .env.local file should contain the following:
NEXT_PUBLIC_GTM_ID=GTM-XXXXXXXWhen creating new pages, the navbar must be updated to include the new page if desired. As of commit a414b04, the navbar is generated from a JS object and contains an array of paths and their corresponding labels. To update the navbar, edit NavbarTabData.js and read the comments for instructions.
Important
You must have GitHub action permissions to add a new workshop to production in this way. Otherwise, you may fork the repository, manually edit the workshops.json file, and create a pull request to develop.
- Navigate to the Create Workshop GitHub action.
- Click the
Run workflowbutton. - Select the
developbranch. (Make sure thedevelopbranch is up to date with themainbranch first.) - Fill in the prompts as needed.
- To add newlines in the description, use the
\nescape sequence.
- To add newlines in the description, use the
- Click the
Run workflowbutton. - Create a pull request from the
developbranch to themainbranch. - Merge, and you're done!
Note
You must have push access to the private images repo to update the team list on production. Otherwise, you may use your own by setting the PROPRIETARY_IMAGES_HOSTNAME environment variable to your own server.
- Navigate to the private team list image repository and remove all images from the
teamfolder. - Add the new team member images to the
teamfolder. - Open your favourite text editor and navigate to the
src/data/team.jsonfile. - Follow the schema to replace the file with the new team members to the JSON file.
- Note that the
imagefield is the name of the image file in the private team list image repository, under theteamfolder. - Each key in the JSON object is the name of the team, which can be changed. The value is an array of team members.
- Note that the
- Don't forget to update the component expiration date on the
ExpiryContainercomponent insrc/app/page.jsxto reflect the new team. Otherwise, the team list might not appear on the website.- After the expiration date has passed, the team list will be removed from the website. This ensures the team list never shows outdated information.
- Commit and push the changes to the
developbranch, then open a PR and merge! ^-^
- Open your favourite text editor and navigate to the
src/data/faq.jsonfile. - Follow the schema to update the categories and/or the questions and answers within them.
- Commit and push the changes to the
developbranch, then open a PR and merge! 😋
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
- Customizing Material UI - approaches to customizing Material UI.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
You can contact us via Discord or by GitHub Issues