Skip to content

Commit 866f8e1

Browse files
committed
init: initial commit
0 parents  commit 866f8e1

File tree

19 files changed

+7717
-0
lines changed

19 files changed

+7717
-0
lines changed

.github/workflows/lint.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
2+
name: Lint
3+
4+
on:
5+
push:
6+
branches:
7+
- dev
8+
- main
9+
pull_request:
10+
branches:
11+
- dev
12+
- main
13+
14+
permissions:
15+
contents: read
16+
17+
jobs:
18+
lint:
19+
name: ESLint & Prettier
20+
runs-on: ubuntu-latest
21+
env:
22+
HUSKY: 0
23+
steps:
24+
- name: Checkout
25+
uses: actions/checkout@v4
26+
27+
- name: Setup Node.js
28+
uses: actions/setup-node@v4
29+
with:
30+
node-version: '20'
31+
cache: npm
32+
33+
- name: Install dependencies
34+
run: npm ci
35+
36+
- name: Run ESLint
37+
run: npm run lint
38+
39+
- name: Run Prettier check
40+
run: npm run format:check

.gitignore

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# build output
2+
dist/
3+
4+
# generated types
5+
.astro/
6+
7+
# dependencies
8+
node_modules/
9+
10+
# logs
11+
npm-debug.log*
12+
yarn-debug.log*
13+
yarn-error.log*
14+
pnpm-debug.log*
15+
16+
# environment variables
17+
.env
18+
.env.production
19+
20+
# macOS-specific files
21+
.DS_Store
22+
23+
# jetbrains setting folder
24+
.idea/

.prettierignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/dist
2+
/node_modules
3+
.env
4+
coverage

.prettierrc.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"semi": true,
3+
"singleQuote": true,
4+
"trailingComma": "all",
5+
"printWidth": 100,
6+
"tabWidth": 2
7+
}

.vscode/extensions.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"recommendations": ["astro-build.astro-vscode"],
3+
"unwantedRecommendations": []
4+
}

.vscode/launch.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"version": "0.2.0",
3+
"configurations": [
4+
{
5+
"command": "./node_modules/.bin/astro dev",
6+
"name": "Development server",
7+
"request": "launch",
8+
"type": "node-terminal"
9+
}
10+
]
11+
}

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 SCESI
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# CleanUpHack Landing Page
2+
3+
Landing page for the CleanUpHack initiative (SCESI). Built with Astro 5, Tailwind CSS 4, and Framer Motion for smooth UI animations.
4+
5+
## Tech Stack
6+
7+
- Astro 5 (content-focused, island architecture)
8+
- Tailwind CSS 4 (via `@tailwindcss/vite`)
9+
- Framer Motion (animation)
10+
- TypeScript ready (tsconfig included)
11+
- ESLint + Prettier (consistent code style)
12+
13+
## Project Structure
14+
15+
```text
16+
/
17+
├── public/
18+
│ └── clean-up.svg
19+
├── src/
20+
│ ├── assets/
21+
│ │ ├── astro.svg
22+
│ │ └── clean-up-hack.svg
23+
│ ├── components/ (UI components - add your .astro / .tsx files here)
24+
│ ├── layouts/
25+
│ │ └── Layout.astro
26+
│ ├── pages/
27+
│ │ └── index.astro
28+
│ └── styles/
29+
│ └── global.css
30+
├── astro.config.mjs
31+
├── package.json
32+
└── tsconfig.json
33+
```
34+
35+
## Quick Start
36+
37+
```bash
38+
npm install
39+
npm run dev
40+
```
41+
42+
Open http://localhost:4321
43+
44+
## Available Scripts
45+
46+
| Script | Description |
47+
| ---------------------- | ------------------------------ |
48+
| `npm run dev` | Start dev server (hot reload) |
49+
| `npm run build` | Production build into `dist/` |
50+
| `npm run preview` | Preview the built site locally |
51+
| `npm run astro` | Run Astro CLI commands |
52+
| `npm run lint` | Lint source files |
53+
| `npm run lint:fix` | Lint + auto-fix |
54+
| `npm run format` | Format all files with Prettier |
55+
| `npm run format:check` | Check formatting |
56+
57+
## Styling
58+
59+
Global styles live in `src/styles/global.css`. Tailwind utilities are available everywhere; add component-level styles alongside components if needed.
60+
61+
## Animations
62+
63+
`framer-motion` is installed. For Astro + Motion, you can import motion components inside framework islands (e.g. React component) or progressively enhance.
64+
65+
## Linting & Formatting
66+
67+
Run before committing:
68+
69+
```bash
70+
npm run lint && npm run format:check
71+
```
72+
73+
## Build & Deploy
74+
75+
```bash
76+
npm run build
77+
npm run preview # sanity check
78+
```
79+
80+
Deploy the contents of `dist/` to your static host (Netlify, Vercel, GitHub Pages, etc.).
81+
82+
## Contributing
83+
84+
1. Create a new branch: `feat/<short-name>`
85+
2. Make changes and ensure lint passes
86+
3. Commit using conventional style if possible (e.g. `feat: add hero section`)
87+
4. Open a PR into `dev`
88+
89+
## Roadmap (suggested)
90+
91+
- Add SEO meta tags & Open Graph
92+
- Responsive navigation & mobile menu
93+
- Accessibility audit
94+
- Analytics integration (privacy friendly)
95+
96+
## License
97+
98+
MIT License © 2025 SCESI. See `LICENSE` for the full text.
99+
100+
## Reference Docs
101+
102+
- Astro: https://docs.astro.build
103+
- Tailwind CSS: https://tailwindcss.com
104+
- Framer Motion: https://www.framer.com/motion/

astro.config.mjs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// @ts-check
2+
import { defineConfig } from 'astro/config';
3+
4+
import tailwindcss from '@tailwindcss/vite';
5+
6+
// https://astro.build/config
7+
export default defineConfig({
8+
vite: {
9+
plugins: [tailwindcss()],
10+
},
11+
});

eslint.config.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import js from '@eslint/js';
2+
import globals from 'globals';
3+
import tseslint from 'typescript-eslint';
4+
import css from '@eslint/css';
5+
import { defineConfig } from 'eslint/config';
6+
7+
export default defineConfig([
8+
{
9+
files: ['**/*.{js,mjs,cjs,ts,mts,cts}'],
10+
plugins: { js },
11+
extends: ['js/recommended'],
12+
languageOptions: { globals: globals.browser },
13+
},
14+
tseslint.configs.recommended,
15+
{ files: ['**/*.css'], plugins: { css }, language: 'css/css', extends: ['css/recommended'] },
16+
]);

0 commit comments

Comments
 (0)