Skip to content

Commit 599d6ff

Browse files
feat(v2): implement full feature set for Version 2 frontend
Implemented Email Sending with Compose and Sent views. Added Settings page for Forwarding and Password management. Built Admin Dashboard with User Management (List, Create, Edit, Delete). Integrated generic components and fixed build issues. Completed Phase 2 of the Version 2 rebuild.
1 parent 27c1e6d commit 599d6ff

34 files changed

Lines changed: 6828 additions & 0 deletions

version 2/.gitignore

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
pnpm-debug.log*
8+
lerna-debug.log*
9+
10+
node_modules
11+
dist
12+
dist-ssr
13+
*.local
14+
15+
# Editor directories and files
16+
.vscode/*
17+
!.vscode/extensions.json
18+
.idea
19+
.DS_Store
20+
*.suo
21+
*.ntvs*
22+
*.njsproj
23+
*.sln
24+
*.sw?

version 2/README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Freemail Version 2
2+
3+
A modern, responsive frontend for the Freemail application, built with React, Vite, and Tailwind CSS.
4+
5+
## Features
6+
- **Modern UI**: Clean interface built with Tailwind CSS v4.
7+
- **Authentication**: Secure login for Admins, Users, and Mailbox accounts.
8+
- **Dashboard**: Overview of system status and mailboxes.
9+
- **Mailbox**: Real-time email listing and reading with sanitized HTML view.
10+
- **Responsive**: Fully optimized for mobile and desktop.
11+
12+
## Getting Started
13+
14+
### Prerequisites
15+
- Node.js 18+
16+
- Backend Cloudflare Worker running locally (default port 8787).
17+
18+
### Installation
19+
1. Install dependencies:
20+
```bash
21+
npm install
22+
```
23+
24+
2. Start the development server:
25+
```bash
26+
npm run dev
27+
```
28+
29+
3. Open `http://localhost:5173` in your browser.
30+
31+
## Configuration
32+
The frontend is configured to proxy API requests to `http://localhost:8787`.
33+
To change this, edit `vite.config.ts`.
34+
35+
## Deployment
36+
To build for production:
37+
```bash
38+
npm run build
39+
```
40+
The output will be in the `dist` directory.

version 2/eslint.config.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import js from '@eslint/js'
2+
import globals from 'globals'
3+
import reactHooks from 'eslint-plugin-react-hooks'
4+
import reactRefresh from 'eslint-plugin-react-refresh'
5+
import tseslint from 'typescript-eslint'
6+
import { defineConfig, globalIgnores } from 'eslint/config'
7+
8+
export default defineConfig([
9+
globalIgnores(['dist']),
10+
{
11+
files: ['**/*.{ts,tsx}'],
12+
extends: [
13+
js.configs.recommended,
14+
tseslint.configs.recommended,
15+
reactHooks.configs.flat.recommended,
16+
reactRefresh.configs.vite,
17+
],
18+
languageOptions: {
19+
ecmaVersion: 2020,
20+
globals: globals.browser,
21+
},
22+
},
23+
])

version 2/index.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7+
<title>version-2</title>
8+
</head>
9+
<body>
10+
<div id="root"></div>
11+
<script type="module" src="/src/main.tsx"></script>
12+
</body>
13+
</html>

0 commit comments

Comments
 (0)