This repository contains the code to foss meet 2025 landing site
The following guidelines are to be followed to ensure uniform coding standards amongst all team members
- tailwind integration has been pre setup
- use either tailwind or module.css
- don't edit globals.css
- CI/CD is configured for github pages host at updation of main branch
- associate every major branch with a github-issue
- every branch should be named <issueNo>-<details>
- eg: a branch for creating navbar would be navbar-1
- follow naming schemes and folder structure as per Directory Structure
- import fonts from
src/fontswhenever needed - default colours have been set under the variable names --primary, --secondary, --white respectively and can be used in tailwind as
bg-primarytext-secondaryetc
The configured media query constants for tailwind are given below. Even when use modular css, don't make use of any other media query values except the ones below.
xs: '480px', // Custom breakpoint for extra small screens
sm: '600px', // Change the default sm size
md: '800px', // Change the default md size
lg: '1080px', // Change the default lg size
xl: '1440px', // Change the default xl size
2xl: '1920px', // Change the default 2xl sizeFossmeet-25/
├── public/ # for static files (e.g. images/pdfs/json etc)
| ├── general/
| ├── egComponent/
| ├── docs/
| ├── json/
└───src/
├── fonts/
| ├── *.woff|.tff|.otf
| └── index.ts # refer examples for instructions
├── app/
| ├── example-route/
| | └── page.tsx # refer examples for instructions
| └── (debug)/ # do any tests here, ignored by git
| ├── test1/
| | └── page.tsx
| └── test2/
| └── page.tsx
├── components/
│ └── EgComponent/ # refer examples for instructions
| ├── childComponent.tsx # (optional)
│ ├── index.tsx # main component
│ └── styles.module.css # (optional)
├── hooks/
| └── useHook.ts # any custom hooks needed
├── lib/ # (redundant) any REST calls
└── types.ts # (optional) any type that might be reused in multiple pages, add here
- It is recommended to work on a separate branch to avoid conflicts with other contributors
- Every task that will be assigned will be added to the github issues page
- The issue is also
assignedto the person who will be responsible for that page / part of the page. - follow the steps to start working on the branch
git fetch
git pull
git checkout 1-home-page- do
git pullbefore you start any coding session, in case someone else has made any important changes in your branch - after every coding session, do:
git add .
git commit -m "<short sentence on what changes you have done>"
git push- ensure that
git pushhas been ran - create a pull request from github via this page
- make the pull request from
<your-branch>-->main - assign someone as a reviewer
- DO NOT: merge at this stage
- use lowercase letters with dashes
filePath: 'src/app/example-route/page.tsx'
'use client' // add directive for client-side rendering
import EgComponent from '@/components/EgComponent';
import Container from '@/components/Container';
const Page = () => {
const buttonHandler = useCallback(() => {
// wrap every function within useCallback
}, [/* dependencies */]);
const dummyData = useMemo(() => {
// wrap every constant value within useMemo
}, [/* dependencies */]);
return (
<Container>
<EgComponent
{...props}
/>
</Container>
)
}
export default Page;filePath: 'src/components/EgComponent/index.tsx'
import styles from './styles.module.css';
/**
* write brief description about component
* @param prop1 [number] give info
* @param prop2 [string] give info
* @author you
*/
const EgComponent = ({ // name this same as the folder
prop1,
prop2,
...
} : {
prop1: number,
prop2: string,
...
}) => {
return (
<div className="flex flex-col"> // tailwind css
<div className={styles['your-classname']}> // modular css
hello
</div>
</div>
)
};
export default EgComponent;- B21s