Skip to content

henriq4/url-shortner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Url Shortner

Project developed during Harvard CS50

Overview

This is a full-stack web application for URL shortening, built with modern technologies. The front end is developed using ReactJS with Vite and TypeScript, providing a responsive and efficient user interface. On the backend, the application leverages Java with Spring Boot, ensuring a robust and scalable server-side architecture. MongoDB serves as the database, facilitating data storage and retrieval.

Demo

havard_cs50-final_project.mp4

Features

  • URL Shortening: Easily create shortened versions of long URLs for convenient sharing.
  • User-Friendly Interface: A clean and intuitive front-end design built with ReactJS to enhance user experience.
  • Secure Backend: The backend, powered by Java and Spring Boot, ensures a secure and reliable server environment.
  • Data Storage with MongoDB: Persistent storage of URL mappings in a MongoDB database for seamless access and retrieval.
  • Dockerized Environment: Utilizes Docker Compose to provide a containerized setup, including a MongoDB instance and a Mongo Express server for database management.

Techs Used

  • ReactJS
  • Vite
  • TypeScript
  • Java
  • Spring Boot
  • MongoDB
  • Docker Compose

Project Structure

.
├── apps
│    └──├── web
│    └── api
└── docker-compose.yml

Getting Started

  1. Clone the repository:

    git clone https://github.com/henriq4/url-shortner.git
  2. Navigate to the project directory:

    cd url-shortner
  3. Run the database setup with docker compose:

    docker compose up -d

    This will initialize the MongoDB instance and the Mongo Express server.

  4. Start the web and api applications:

    • Web:

      cd web
      pnpm install
      pnpm run dev
    • Api:

      cd api
      ./gradlew bootRun
  5. Access the application:

Contribution

Feel free to contribute to the project by creating issues or submitting pull requests. Your feedback and contributions are highly appreciated.

License

This project is under MIT License and philosophy on academic honesty from CS50.

Author

@henriq4
Software Developer

GitHub LinkedIn