ZipSurf is a summer project I made to establish some fundamental skills in web development: React (Vite-React), HTML, CSS, Firebase, and external API implementations. The application's primary goal is to provide a simple, visually-appealing interface for users to shorten and save exceedingly long URLs.
- Utilized Firebase
getAuth,GoogleAuthProvider, andsignInWithPopupfunctions to provide a seamless user authentication and login process
- Integrated synchronized storage of shortened URLs using React
statevariables and FirebasecollectionandaddDocfunctions - Added error checking for duplicate URLs and invalid URLs to avoid unnecessary reads/writes to the database
- Implemented Google Docs API to export the user's list of shortened URLs to an OAuth 2.0-verified Google Doc
- Used Firebase
collection,getDocs, anddeleteDocfunctions to selectively delete all or individual shortened URLs
- Designed the website wireframes and background graphics in Figma (the latter implemented aurora and glass morphism effects)
- Used Figma and Realtime Colors to generate light/dark mode themes, which is persistent across page refreshes due to the
statevariable saved in each user's database - Included a variety of SVG icons to enhance the user experience
- Developed custom Navbar component to allow for sleek and effective user navigation
- Personally designed website favicon
The following external APIs were integrated into this project to enhance its functionality:
Version: v2
- Description: Used the TinyURL API to fetch custom shortened URLs for registered users
- API Provider: TinyURL LLC
- API Documentation
Version: v1
- Description: Used the Google Docs API to export a list of shortened URLs to a newly generated (OAuth 2.0 verified) Google Doc
- API Provider: Google
- API Documentation
git clone https://github.com/wderocco8/ZipSurf.gitcd ZipSurf- create free developer account with TinyURL (copy api token into .env file)
- run the following command
npm i && npm run dev
- Open the application using the provided link (note: the Google Docs API will only work if "127.0.0.1" is replaced with "localhost" due to constraints on authorized javascript origins)
For this project, I used Firebase Hosting to deploy my site, To try deploying it yourself, you can use the folder that you downloaded above and follow these steps:
- open root of project directory (cd ZipSurf)
- run the following commands
firebase loginfirebase init
- select "Hosting: Configure files for Firebase Hosting and (optionally) set up GitHub Action deploys"
- type
distpublic directory name (since we are using Vite-React) - select "y" to configure as a single-page web app
- run the following commands
npm run buildfirebase deploy
Alternatively, you can visit the site I already created below:
Coming soon 👀 (for now, feel free to interact with the site itself: ZipSurf)