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.
- 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. ⏳
- 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.
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.
- Suraj Sahu
If you have any questions, concerns, or interest, feel free to contact me. 📩