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.
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 --version
If 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-name
Then install dependencies (if it's a Node.js project):
npm install
You 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/GrizzlyHacks
cd GrizzlyHacks/GGCHacks
npm install
npm install -g @angular/cli
ng generate environments
Open 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
ng
command 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
PATH
includes the npm global binaries directory.
- Install Angular CLI globally:
- Issue: Errors during
npm install
oryarn install
. - Steps:
- Delete the
node_modules
folder 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.json
and 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.ts
andenvironment.prod.ts
. - Ensure the correct environment file is being used (e.g.,
ng serve
usesenvironment.ts
by 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.json
file (if used) for correct API endpoints. - Update the
angular.json
file 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 lint
orng 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
debugger
statements 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!