The Grizzly Hacks client, which is a RSO of people who are interested in Hackathons, has tasked the team to work on their previous website, update it with modern features, and to add new components that will allow the clients and future users to access a website that will easily portray news, host events, and provide information about previous Hackathons. The website should have different authentication levels that allow admins to easily edit and add new information onto the website, while users to gain access to features so they can join feature Hackathons and post submissions for current events.
During Fall 2025, work on the Grizzly Hacks website focused on improving structure, usability, and content management. Updates were made to clean up older code, simplify the site layout, and make it easier to update content through Firebase without editing code. The website was adjusted to better support current hackathon needs and general information for users.
- Removed unused and outdated features to simplify the codebase.
- Cleaned up routes and file names to reduce confusion and prevent broken pages.
- Redesigned the landing page with improved layout, spacing, and visual styling.
- Added a reusable schedule and timeline page that pulls content from Firebase.
- Implemented dynamic FAQ and sponsor sections that update automatically when edited in Firebase.
- Updated the registration page to use an embedded Google Form that can be managed through Firebase.
- Built a Firestore content editor that allows admins to edit flyers, FAQs, schedules, events, and archive content directly from the website.
- Fixed issues related to document IDs, indexing, and queries so content updates correctly.
- Added drag-and-drop reordering for admin-managed content and adjusted Firebase data structure to support ordering.
- Improved loading behavior by adding placeholder effects for image-heavy sections.
- Made flyers and schedules clickable with expanded views for easier reading.
- Simplified and standardized CSS to improve consistency and reduce unnecessary spacing.
- Adjusted authentication logic so public pages are accessible without requiring login.
- Archived non-essential sections to keep the site focused and easier to maintain.
- Added an archive page and connected it to the admin editor for managing past content.
- Updated the website branding to use official Grizzly Hacks logos and assets.
This semester, my team and I worked on improving the Grizzly Hacks website. We met regularly with the Grizzly Hacks officers, Dr. Anca, and Dr. Gunay to get feedback and make updates. Most of our work focused on cleaning up the pages, making the UI more user-friendly, and adding new features—like a timeline page to help users keep track of important dates. It’s been a great learning experience and a solid chance to apply what we’ve been learning in class to something real.
- Node.js
- Angular
- Bootstrap
- HTML/CSS
- Firebase
- TypeScript
- Real-time Application
- Social Media Links
- Registration System
- Event and Blog Post System
- Sponsors Section
- FAQs
- Mobile Device Friendly
NVM stands for Node Version Manager. It lets you easily install and switch between different versions of Node.js, which is needed to run many JavaScript-based projects.
-
Open your terminal (Press
Cmd + Space, type “Terminal”, and hit Enter). -
Run this command to install NVM:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash -
Once the script finishes, restart the terminal, or run:
source ~/.bashrc # or ~/.zshrc if you're using zsh
-
Check if NVM installed correctly:
nvm --version
-
Go to the nvm-windows GitHub page.
-
Download the nvm-setup.exe file under the latest release.
-
Run the installer:
- Choose where to install NVM and Node.js.
- Accept default settings if unsure.
-
Once installed, open Command Prompt and type:
nvm version
Now that you have NVM:
-
Install the latest LTS (Long-Term Support) version of Node.js:
nvm install --lts
-
Use it:
nvm use --lts
-
Confirm Node.js and npm are working:
node -v npm -v
Check if Git is installed:
git --versionIf it’s not installed, download and install it from: 👉 https://git-scm.com/downloads
After installing, reopen your terminal and try:
git --version- Go to the GitHub page of the project.
- Click the green Code button and copy the HTTPS URL.
- In your terminal, run:
Replace the URL with the one you copied.
git clone https://github.com/username/project-name.git
cd project-nameThen install dependencies (if it's a Node.js project):
npm installYou now have:
- NVM installed
- Node.js ready to use
- Git set up
- A project cloned and ready to run
Follow the steps below to set up and run the Grizzly Hacks project locally.
git clone https://github.com/GGC-SD/GrizzlyHackscd GrizzlyHacks/GGCHacksnpm installnpm install -g @angular/cling generate environmentsOpen the newly generated environment.ts file and update the firebase section with your Firebase credentials:
export const environment = {
production: false,
firebase: {
apiKey: 'YOUR_API_KEY',
authDomain: 'YOUR_AUTH_DOMAIN',
projectId: 'YOUR_PROJECT_ID',
storageBucket: 'YOUR_STORAGE_BUCKET',
messagingSenderId: 'YOUR_SENDER_ID',
appId: 'YOUR_APP_ID',
}
};🔐 Important: Never commit your actual Firebase keys to public repositories.
ng serve⏳ The first run may take a few minutes, especially on slower systems. Be patient — it’s setting everything up for you.
Once the server starts, open your browser and go to:
http://localhost:4200
✅ You should see the homepage of the site. Only admin users will see the Admin Dashboard section.
-
William Randazzo
- UI/UX
- Client Liaison
-
Steven Lopez
- Code Architecture/Lead Programmer
- Project Manager
-
Derron Pierre
- Data modeler
- Documentation Lead
-
Isaiah Jimenez
- Code Architecture
- Testing
-
Kenny Amador 👷
- Data modeler
- Client Liaison
-
Destiny Lowe 🖌️
- UI/UX Specialist
- Documentation Lead
-
Jimmy Phan 💻
- Lead Programmer/Code Architecture
- Testing Lead
-
Daniel Santoyo 💻
- Project Manager
- Programmer/Code Architecture
- Josh Beers 👑
- Lead Programmer
- Project Manager
- Danielle Battle 🎨
- UX/UI
- Document Lead
- Anne Joseph 📊
- Data Modeler
- Testing Lead
OUTDATED All the features are demonstrated in this video.
OUTDATED Website Demo as of Nov 21/2024
link to the video
UPDATED - Latest vlog as on Spring 2025, link to the video
You can also view our website by clicking on this link.
-
Timeline/Scheduler Admins can now create, edit, and delete Hackathon event entries on a timeline to keep attendees informed of the day’s schedule.
-
Blog Section Redesign The blog page was restyled to use a cleaner, card-based layout for better readability and visual appeal. It also now known as Events!, "blog" was retired.
-
Home Page Updates The home page was improved by removing the carousel, updating the FAQ section, and making the overall design more user-friendly.
-
Featured Events Flyer Zoom Users can now hover over featured event flyers to view an enlarged version for easier reading and interaction.
-
Mobile-Friendly Auth Pages The login and registration pages were redesigned for better mobile responsiveness and accessibility.
-
Alumni Registration Alumni can now register on the platform without needing a .edu email, improving inclusivity.
-
Backend Performance Improvements The backend was optimized to load user and event lists faster, scaling better with increasing traffic.
-
Button Consistency Button styles were standardized across the site for a more polished and cohesive user experience.
-
Admin Dashboard Bug Fixes Various bugs that prevented users from rendering properly in the admin dashboard were resolved.
-
Admin Dashboard UI Enhancements The layout and color scheme of the admin dashboard were updated for improved usability and clarity.
-
Updated Color Palette The website’s color scheme was updated site-wide to match the branding guidelines provided by GGC officers.
- Issue: Angular requires Node.js and a package manager (npm or yarn) to be installed.
- Steps:
- Check if Node.js and npm are installed:
node -v npm -v
- If not installed, download and install the latest LTS version of Node.js from nodejs.org.
- Update npm to the latest version:
npm install -g npm
- If using yarn, install it globally:
npm install -g yarn
- Check if Node.js and npm are installed:
- Issue: The
ngcommand is not recognized. - Steps:
- Install Angular CLI globally:
npm install -g @angular/cli
- Verify the installation:
ng version
- If the command is still not recognized, ensure your system's
PATHincludes the npm global binaries directory.
- Install Angular CLI globally:
- Issue: Errors during
npm installoryarn install. - Steps:
- Delete the
node_modulesfolder andpackage-lock.json(oryarn.lock):rm -rf node_modules package-lock.json yarn.lock
- Clear the npm cache:
npm cache clean --force
- Reinstall dependencies:
or
npm install
yarn install
- If the issue persists, check for version conflicts in
package.jsonand ensure all dependencies are compatible with your Angular version.
- Delete the
- Issue: The default port (4200) is occupied.
- Steps:
- Identify the process using the port:
sudo lsof -i :4200
- Kill the process:
kill <PID>
- Alternatively, run the Angular project on a different port:
ng serve --port 4201
- Identify the process using the port:
- Issue: Errors related to TypeScript or Angular versions.
- Steps:
- Check the Angular and TypeScript versions in
package.json. - Ensure the versions are compatible (refer to the Angular compatibility guide).
- Update Angular CLI and project dependencies:
ng update @angular/cli @angular/core
- Update TypeScript:
npm install typescript@latest --save-dev
- Check the Angular and TypeScript versions in
- Issue: Errors related to environment variables or configuration files.
- Steps:
- Check the
src/environments/folder forenvironment.tsandenvironment.prod.ts. - Ensure the correct environment file is being used (e.g.,
ng serveusesenvironment.tsby default). - If using custom environment variables, ensure they are defined and referenced correctly.
- Check the
- Issue: Errors during
ng build. - Steps:
- Check the error message for specific issues (e.g., missing modules, syntax errors).
- Ensure all dependencies are installed and up-to-date.
- Clean the build cache:
ng build --prod --output-hashing=none
- If using lazy loading, ensure the module paths are correct.
- Issue: API requests fail due to incorrect proxy configuration.
- Steps:
- Check the
proxy.conf.jsonfile (if used) for correct API endpoints. - Update the
angular.jsonfile to include the proxy configuration:"serve": { "options": { "proxyConfig": "src/proxy.conf.json" } }
- Restart the development server.
- Check the
- Issue: Changes are not reflected in the browser.
- Steps:
- Disable browser caching or open the app in an incognito window.
- Clear the Angular build cache:
ng cache clean
- Restart the development server.
- Issue: Errors during
ng lintorng format. - Steps:
- Run the linter to identify issues:
ng lint
- Fix the reported issues manually or use auto-fix:
ng lint --fix
- Ensure your IDE is configured with the same linting rules as the project.
- Run the linter to identify issues:
- Issue: The project requires a specific Angular CLI version.
- Steps:
- Check the Angular CLI version in the project:
ng version
- If the global CLI version is outdated, update it:
npm install -g @angular/cli@latest
- If the project requires a specific version, install it globally:
npm install -g @angular/cli@<version>
- Check the Angular CLI version in the project:
- Issue: Errors in the browser console.
- Steps:
- Open the browser's developer tools (F12) and check the console for errors.
- Use source maps to trace errors back to the original TypeScript code.
- Add breakpoints in the browser or use
debuggerstatements in your code.
- Always read the error messages carefully—they often provide clues about the root cause.
- If all else fails, search for the error message online—chances are someone else has encountered the same issue!

