Skip to content

Commit

Permalink
Made committees.html better
Browse files Browse the repository at this point in the history
As well as updated some files

Signed-off-by: DefinetlyNotAI <[email protected]>
  • Loading branch information
DefinetlyNotAI committed Dec 6, 2024
1 parent 4fc209f commit 6ecb958
Show file tree
Hide file tree
Showing 35 changed files with 5,628 additions and 130 deletions.
3 changes: 3 additions & 0 deletions .deprecated/project/.bolt/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"template": "bolt-vite-react-ts"
}
8 changes: 8 additions & 0 deletions .deprecated/project/.bolt/prompt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
For all designs I ask you to make, have them be beautiful, not cookie cutter. Make webpages that are fully featured and worthy for production.

By default, this template supports JSX syntax with Tailwind CSS classes, React hooks, and Lucide React for icons. Do not install other packages for UI themes, icons, etc unless absolutely necessary or I request them.

Use icons from lucide-react for logos.

Use stock photos from unsplash where appropriate, only valid URLs you know exist. Do not download the images, only link to them in image tags.

24 changes: 24 additions & 0 deletions .deprecated/project/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
28 changes: 28 additions & 0 deletions .deprecated/project/eslint.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import js from '@eslint/js';
import globals from 'globals';
import reactHooks from 'eslint-plugin-react-hooks';
import reactRefresh from 'eslint-plugin-react-refresh';
import tseslint from 'typescript-eslint';

export default tseslint.config(
{ignores: ['dist']},
{
extends: [js.configs.recommended, ...tseslint.configs.recommended],
files: ['**/*.{ts,tsx}'],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
},
plugins: {
'react-hooks': reactHooks,
'react-refresh': reactRefresh,
},
rules: {
...reactHooks.configs.recommended.rules,
'react-refresh/only-export-components': [
'warn',
{allowConstantExport: true},
],
},
}
);
156 changes: 156 additions & 0 deletions .deprecated/project/js/committees.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
const committees = {
beginner: [
{
name: 'UNICEF',
description: 'United Nations Children\'s Fund - Focusing on children\'s rights and well-being',
image: 'https://images.unsplash.com/photo-1488521787991-ed7bbaae773c?auto=format&fit=crop&w=800',
level: 'Beginner',
guideUrl: '#'
},
{
name: 'WHO',
description: 'World Health Organization - Addressing global health challenges',
image: 'https://images.unsplash.com/photo-1584036561566-baf8f5f1b144?auto=format&fit=crop&w=800',
level: 'Beginner',
guideUrl: '#'
},
{
name: 'UNHCR',
description: 'UN Refugee Agency - Protecting refugees worldwide',
image: 'https://images.unsplash.com/photo-1532629345422-7515f3d16bb6?auto=format&fit=crop&w=800',
level: 'Beginner',
guideUrl: '#'
},
{
name: 'UNSC jr',
description: 'UN Security Council Junior - Introduction to international security',
image: 'https://images.unsplash.com/photo-1529107386315-e1a2ed48a620?auto=format&fit=crop&w=800',
level: 'Beginner',
guideUrl: '#'
},
{
name: 'UNHRC',
description: 'UN Human Rights Council - Promoting human rights globally',
image: 'https://images.unsplash.com/photo-1457369804613-52c61a468e7d?auto=format&fit=crop&w=800',
level: 'Beginner',
guideUrl: '#'
},
{
name: 'UNW',
description: 'UN Women - Gender equality and women\'s empowerment',
image: 'https://images.unsplash.com/photo-1621352404112-58e2468a1c87?auto=format&fit=crop&w=800',
level: 'Beginner',
guideUrl: '#'
}
],
intermediate: [
{
name: 'UNODC',
description: 'United Nations Office on Drugs and Crime - Addressing transnational crime',
image: 'https://images.unsplash.com/photo-1589578228447-e1a4e481c6c8?auto=format&fit=crop&w=800',
level: 'Intermediate',
guideUrl: '#'
},
{
name: 'GA1',
description: 'General Assembly First Committee - Disarmament and International Security',
image: 'https://images.unsplash.com/photo-1453728013993-6d66e9c9123a?auto=format&fit=crop&w=800',
level: 'Intermediate',
guideUrl: '#'
},
{
name: 'Arab League (Arabic)',
description: 'League of Arab States - Regional cooperation in Arabic',
image: 'https://images.unsplash.com/photo-1577019961424-a669grounds?auto=format&fit=crop&w=800',
level: 'Intermediate',
guideUrl: '#'
},
{
name: 'Arab League (English)',
description: 'League of Arab States - Regional cooperation in English',
image: 'https://images.unsplash.com/photo-1577019961424-a669grounds?auto=format&fit=crop&w=800',
level: 'Intermediate',
guideUrl: '#'
},
{
name: 'GA4',
description: 'Special Political and Decolonization Committee',
image: 'https://images.unsplash.com/photo-1451187580459-43490279c0fa?auto=format&fit=crop&w=800',
level: 'Intermediate',
guideUrl: '#'
},
{
name: 'ECOSOC',
description: 'Economic and Social Council - Sustainable development coordination',
image: 'https://images.unsplash.com/photo-1460925895917-afdab827c52f?auto=format&fit=crop&w=800',
level: 'Intermediate',
guideUrl: '#'
}
],
advanced: [
{
name: 'NATO',
description: 'North Atlantic Treaty Organization - Military alliance and security',
image: 'https://images.unsplash.com/photo-1569409003595-f7279be21c72?auto=format&fit=crop&w=800',
level: 'Advanced',
guideUrl: '#'
},
{
name: 'UNSC',
description: 'United Nations Security Council - International peace and security',
image: 'https://images.unsplash.com/photo-1529107386315-e1a2ed48a620?auto=format&fit=crop&w=800',
level: 'Advanced',
guideUrl: '#'
},
{
name: 'HSC',
description: 'Historical Security Council - Past international crises',
image: 'https://images.unsplash.com/photo-1524995997946-a1c2e315a42f?auto=format&fit=crop&w=800',
level: 'Advanced',
guideUrl: '#'
},
{
name: 'HCC',
description: 'Historical Crisis Committee - Complex historical scenarios',
image: 'https://images.unsplash.com/photo-1509228468518-180dd4864904?auto=format&fit=crop&w=800',
level: 'Advanced',
guideUrl: '#'
}
]
};

function createCommitteeCard(committee) {
return `
<div class="committee-card">
<img src="${committee.image}" alt="${committee.name}" class="committee-image">
<div class="committee-content">
<span class="committee-level-badge level-${committee.level.toLowerCase()}">${committee.level}</span>
<h3 class="committee-title">${committee.name}</h3>
<p class="committee-description">${committee.description}</p>
<div class="committee-links">
<a href="/committees/${committee.name.toLowerCase().replace(/\s+/g, '-')}">
Learn More
<i data-lucide="arrow-right"></i>
</a>
<a href="${committee.guideUrl}" class="download-guide">
Background Guide
<i data-lucide="file-down"></i>
</a>
</div>
</div>
</div>
`;
}

document.addEventListener('DOMContentLoaded', () => {
// Populate committees
Object.entries(committees).forEach(([level, committeeList]) => {
const container = document.getElementById(`${level}-committees`);
if (container) {
container.innerHTML = committeeList.map(committee => createCommitteeCard(committee)).join('');
}
});

// Initialize Lucide icons
lucide.createIcons();
});
8 changes: 8 additions & 0 deletions .deprecated/project/js/navbar.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
document.addEventListener('DOMContentLoaded', () => {
const navToggle = document.querySelector('.nav-toggle');
const navLinks = document.querySelector('.nav-links');

navToggle.addEventListener('click', () => {
navLinks.classList.toggle('active');
});
});
20 changes: 20 additions & 0 deletions .deprecated/project/js/registration.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
document.addEventListener('DOMContentLoaded', () => {
const form = document.getElementById('registration-form');

form.addEventListener('submit', (e) => {
e.preventDefault();

// In a real application, you would send this data to a server
const formData = new FormData(form);
const data = Object.fromEntries(formData.entries());

// Show success message
form.innerHTML = `
<div class="success-message">
<h3>Registration Successful!</h3>
<p>Thank you for registering for WESMUN 2024.</p>
<p>Please check your email for further instructions.</p>
</div>
`;
});
});
Loading

0 comments on commit 6ecb958

Please sign in to comment.