LinkSphere is a modern, user-friendly web application that helps you organize, manage, and share your links efficiently. Built with React and TypeScript for the frontend, and Rust with SQLx for the backend, it offers a beautiful and intuitive interface with both light and dark mode support.
- Secure user registration and login system with JWT
- Email verification with OTP
- Protected routes and secure session management
- Password hashing with bcrypt
- Rate limiting and CSRF protection
- OTP attempt management and reset functionality
- Secure session timeout handling
- Create and organize your links with custom titles and descriptions
- Upload and manage link preview images
- Search functionality to quickly find your links
- Responsive grid layout for easy browsing
- Link categorization and tagging (coming soon)
- Automatic link preview generation
- Beautiful, modern UI with smooth animations
- Dual theme support (Light/Dark mode)
- Responsive design for all devices
- Custom scrollbars and focus states
- Loading states and error handling
- Toast notifications for user feedback
- Profile customization(coming soon)
- Account settings(coming soon)
- Secure password updates(coming soon)
- Account deletion with (coming soon)
- Built with React and TypeScript
- Styled with Tailwind CSS
- Framer Motion for smooth animations
- Responsive and mobile-first design
- Modern development practices
- Type-safe codebase
- Built with Rust for high performance
- SQLx for type-safe database operations
- PostgreSQL database
- JWT-based authentication
- Email integration with RESEND
- Docker containerization
- Comprehensive error handling
- Node.js (v14 or higher)
- Rust (latest stable)
- PostgreSQL
- Docker (optional)
- Git
- Clone the repository:
git clone https://github.com/Nkwenti-Severian-Ndongtsop/LinkSphere.git
cd LinkSphere/my-link-uploader- Install dependencies:
npm install- Create a
.envfile in the frontend directory and add your environment variables:
VITE_API_URL=your_api_url- Start the development server:
npm run devThe frontend will be available at http://localhost:5173
- Navigate to the backend directory:
cd backend- Set up your environment variables in a
.envfile:
DATABASE_URL=postgres://user:password@localhost:5432/linksphere
JWT_SECRET=your_jwt_secret
FRONTEND_REQUEST_URL=http://localhost:5173
UPSTASH_REDIS_REST_URL=""
UPSTASH_REDIS_REST_TOKEN=""
RESEND_API_KEY=""
PORT=""
HOST=""- Run database migrations:
cargo install sqlx-cli
sqlx migrate run- Start the backend server:
cargo runThe backend API will be available at http://HOST:PORT
- Framework: React with TypeScript
- Styling: Tailwind CSS
- Animations: Framer Motion
- State Management: React Context
- Routing: React Router
- Form Handling: React Hook Form
- API Client: Axios
- Build Tool: Vite
- Language: Rust
- Web Framework: Axum
- Database: PostgreSQL
- ORM: SQLx
- Authentication: JWT
- Email: Lettre
- Containerization: Docker
LinkSphere features a beautiful dual theme system:
- Soft, muted colors for reduced eye strain
- Semi-transparent backgrounds for depth
- Gentle shadows and transitions
- Optimized contrast for readability
- Rich, deep colors for night viewing
- Carefully selected contrast ratios
- Smooth transitions between states
- Reduced blue light emission
- Secure password hashing with bcrypt
- JWT-based authentication
- Protected API endpoints
- CSRF protection
- Rate limiting
- Input sanitization
- SQL injection prevention through SQLx
- Secure headers
- OTP attempt tracking and management
- Session timeout mechanisms
- Mobile-first approach
- Fluid layouts
- Adaptive components
- Touch-friendly interfaces
- Optimized for all screen sizes
- Link analytics and tracking
- Custom link shortener
- Social sharing integration
- Browser extension
- API for third-party integration
- Advanced search filters
- Link collections and folders
- Real-time collaboration features
- Others...
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
The system includes an automated health monitoring system that checks the database connection status. This is implemented through:
- Endpoint:
/api/admin/db/health - Method: GET
- Authentication: Requires
X-Admin-Token - Automated Monitoring: GitHub Actions workflow runs every 5 minutes
- Framework: React with TypeScript
- Styling: Tailwind CSS
- Animations: Framer Motion
- State Management: React Context
- Routing: React Router
- Form Handling: React Hook Form
- API Client: Axios
- Build Tool: Vite
- Language: Rust
- Web Framework: Axum
- Database: PostgreSQL
- ORM: SQLx
- Authentication: JWT
- Email: Lettre
- Containerization: Docker