Skip to content

LinkOptimizer is a URL shortening application that provides users with a streamlined experience for managing and creating shortened URLs

License

Notifications You must be signed in to change notification settings

surajsahu46/LinkOptimizer

Repository files navigation

LinkOptimizer 🚀

LinkOptimizer is a URL shortening application that provides users with a streamlined experience for managing and creating shortened URLs. The application features a robust user authentication system, allowing users to register and log in securely. Users can create customized URLs for free, assigning them personalized aliases. Additionally, they have a control panel where they can view all their created URLs, as well as edit, delete, and copy them for convenient use.

Features 🌟

  • Easy-to-Use URL Shortening: Easily create and customize shortened URLs for added convenience and shareability.
  • Dashboard Access: After logging in, users gain access to a dashboard showcasing all URLs associated with their account.
  • URL Management: Enjoy full control over your URLs with options to edit, delete, or copy them directly from the dashboard.
  • Secure Authentication: A reliable login and registration system ensures the security of user accounts and data. 🔒
  • User-Friendly Interface: Enjoy a simple and harmonious interface for a pleasant user experience.
  • Customizable Themes: Choose between light, dark, or system-defined themes to suit your preferences. 🎨
  • Toast Notifications: Utilizes a toast system to notify users of the outcomes of various actions and enhance their experience in the application.
  • Password Recovery: Experience peace of mind with a password recovery feature. Users can easily restore or reset their passwords through a secure email sent by the application, ensuring a smooth recovery process. 📧
  • Responsive Design: Enjoy a responsive design that adapts to various devices, providing an optimal experience on desktops, tablets, and mobiles.
  • Streaming Data Fetching: Implementation of a streaming system when fetching data, leveraging the features of Next.js.
  • Dynamic Loading Experience: Provides a smooth user experience when dynamically loading information.
  • Skeleton Components: Enhanced user experience during data loading thanks to the implementation of skeleton components. ⏳

Technologies Used 🛠️

  • React: A JavaScript library for building interactive user interfaces.
  • Next.js: A React framework that enables server-side rendering, automatic code splitting, and simplified routing for building powerful and efficient web applications.
  • Next Auth: Authentication library for Next.js applications.
  • TypeScript: A superset of JavaScript that adds static types and other features to the language syntax.
  • Node.js: A runtime environment for executing JavaScript code server-side.
  • MongoDB: A NoSQL database based on a document data model used for storing and retrieving data.
  • Mongoose: An ODM (Object Data Modeling) library for MongoDB and Node.js.
  • Mongoose Paginate: Pagination support for Mongoose.
  • Dotenv: A zero-dependency module for loading environment variables.
  • Tailwind CSS: A utility-first CSS framework that simplifies styling by providing low-level utility classes, enabling a straightforward and fast approach to building modern and responsive interfaces.
  • clsx: Utility to conditionally build Tailwind CSS classes.
  • class-variance-authority: A utility for managing class variances or authorities.
  • tailwindcss-animate: A Tailwind CSS plugin for adding animation utilities to your styles.
  • Tailwind Merge: A Tailwind CSS plugin for merging utilities.
  • Lucide React: A set of React icons from the Lucide icon library.
  • Next theme: A utility for managing themes in Next.js applications.
  • Shadcn: A collection of UI components for React.
  • React Hook Form: Library for managing forms in React.
  • Zod: A TypeScript-first schema declaration and validation library.
  • Bcryptjs: A library for hashing passwords.
  • JWT: A library for generating and verifying JSON Web Tokens (JWT).
  • Resend: A library for handling email resend functionality.
  • Sonner: A toast notification library for React applications.

Project Structure 🗂️

  • public: Contains static assets such as images and icons used in the application.
  • src/app: Contains the main files and pages of the application.
    • /api: Contains the API routes.
  • src/lib: Holds functions and utilities specific to handling operations such as user registration, password management, URL manipulation, etc.
  • src/components: Contains reusable components used in different parts of the application.
  • src/models: Contains TypeScript interfaces, models, or types used for defining data structures.
  • src/validations: Contains validation files using the Zod library to ensure data integrity in the application.
  • src/utils: Contains utilities and helper functions used in the application.

Author ✍️

  • Suraj Sahu

If you have any questions, concerns, or interest, feel free to contact me. 📩


About

LinkOptimizer is a URL shortening application that provides users with a streamlined experience for managing and creating shortened URLs

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published