Skip to content

Latest commit

Β 

History

History
100 lines (73 loc) Β· 2.44 KB

File metadata and controls

100 lines (73 loc) Β· 2.44 KB

LinkKeeper Frontend

React Native application for link management with web viewing support.

Requirements

  • Node.js 18+
  • npm or yarn
  • Expo CLI (will be installed automatically)

Installation

cd frontend
npm install

Running

Web mode (for development)

npm run dev

Or:

npm run web

The application will open in the browser at http://localhost:19006

Important: Make sure your API server is running on http://localhost:8080 (or change the URL in configuration)

Mobile platforms

npm start

Then select the platform (iOS/Android/Web) or scan the QR code in the Expo Go app.

Interface

Current interface: Modern design in Cursor/GitHub style

  • πŸŒ™ Dark theme
  • 🎨 Minimalist and clean design
  • πŸ” Search and filtering
  • πŸ“Š Statistics in header
  • ✨ Professional look

The project also contains 3 additional interface variants. Details in VARIANTS.md.

Additional variants:

  1. Classic List - simple vertical list
  2. Card Grid - visual cards with filtering
  3. Dashboard with Statistics - analytics and quick actions

To select another variant, open App.tsx and replace the ModernScreen import with the desired variant.

Configuration

Default API URL: http://localhost:8080/api/v1

To change it, create a .env file in the frontend folder:

EXPO_PUBLIC_API_URL=http://your-api-url/api/v1

Project Structure

frontend/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ api/
β”‚   β”‚   └── client.ts      # API client for backend interaction
β”‚   β”œβ”€β”€ screens/
β”‚   β”‚   β”œβ”€β”€ HomeScreen.tsx           # Base screen (current)
β”‚   β”‚   β”œβ”€β”€ Variant1_ClassicList.tsx # Variant 1: Classic list
β”‚   β”‚   β”œβ”€β”€ Variant2_CardGrid.tsx   # Variant 2: Card grid
β”‚   β”‚   └── Variant3_Dashboard.tsx   # Variant 3: Dashboard
β”‚   β”œβ”€β”€ types.ts          # TypeScript types
β”‚   └── config.ts          # Configuration
β”œβ”€β”€ App.tsx                # Main component
β”œβ”€β”€ package.json
└── VARIANTS.md            # UI variants description

Functionality

  • βœ… Create links with optional resource
  • βœ… View list of all links
  • βœ… Get random link (with resource filter)
  • βœ… Mark link as viewed
  • βœ… Delete links
  • βœ… Display statistics (views, dates)

Development

When code changes, the application will automatically reload in the browser (Hot Reload).

To stop, press Ctrl+C in the terminal.