first commit
This commit is contained in:
commit
3bd8e3a5ce
159
README.md
Normal file
159
README.md
Normal file
@ -0,0 +1,159 @@
|
||||
# Phosphat Report v2
|
||||
|
||||
A Remix application for managing phosphat operations reports with authentication and dashboard.
|
||||
|
||||
- 📖 [Remix docs](https://remix.run/docs)
|
||||
|
||||
## Development
|
||||
|
||||
Run the dev server:
|
||||
|
||||
```sh
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## Deployment
|
||||
|
||||
First, build your app for production:
|
||||
|
||||
```sh
|
||||
npm run build
|
||||
```
|
||||
|
||||
Then run the app in production mode:
|
||||
|
||||
```sh
|
||||
npm start
|
||||
```
|
||||
|
||||
Now you'll need to pick a host to deploy it to.
|
||||
|
||||
### DIY
|
||||
|
||||
If you're familiar with deploying Node applications, the built-in Remix app server is production-ready.
|
||||
|
||||
Make sure to deploy the output of `npm run build`
|
||||
|
||||
- `build/server`
|
||||
- `build/client`
|
||||
|
||||
## Styling
|
||||
|
||||
This template comes with [Tailwind CSS](https://tailwindcss.com/) already configured for a simple default starting experience. You can use whatever css framework you prefer. See the [Vite docs on css](https://vitejs.dev/guide/features.html#css) for more information.
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. Install dependencies:
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
2. Set up the database:
|
||||
```bash
|
||||
npx prisma generate
|
||||
npx prisma db push
|
||||
npx prisma db seed
|
||||
```
|
||||
|
||||
3. Start the development server:
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
4. Open your browser to `http://localhost:5173`
|
||||
|
||||
## Default Login
|
||||
|
||||
After seeding, you can login with:
|
||||
- **Username:** admin
|
||||
- **Password:** password123
|
||||
- **Auth Level:** 3 (Super Admin - Full access)
|
||||
|
||||
## Authentication Levels
|
||||
|
||||
- **Level 1:** User access (basic functionality)
|
||||
- **Level 2:** Admin access (can view dashboard, reports, equipment, management pages)
|
||||
- **Level 3:** Super Admin access (full system access including admin panel)
|
||||
|
||||
## Features
|
||||
|
||||
- ✅ User authentication (sign up/sign in)
|
||||
- ✅ Role-based access control
|
||||
- ✅ Dashboard with statistics
|
||||
- ✅ Responsive design with Tailwind CSS
|
||||
- ✅ SQLite database with Prisma ORM
|
||||
- ✅ Session management
|
||||
- ✅ Password hashing with bcrypt
|
||||
- ✅ Email functionality with SMTP configuration
|
||||
- ✅ Mail settings management (Auth Level 3 only)
|
||||
|
||||
## Database Schema
|
||||
|
||||
The application includes models for:
|
||||
- Employees (users with auth levels)
|
||||
- Reports (main data entity)
|
||||
- Areas (Petra, Jarash, Rum)
|
||||
- DredgerLocations (with classes s, d, sp)
|
||||
- ReclamationLocations (Eastern/Western Shoreline)
|
||||
- Foreman
|
||||
- Equipment
|
||||
- MailSettings (SMTP configuration)
|
||||
|
||||
## Email Functionality
|
||||
|
||||
The application includes email functionality using Nodemailer:
|
||||
|
||||
### Mail Settings (Auth Level 3 Required)
|
||||
- Configure SMTP settings via `/mail-settings` route
|
||||
- Test email connection
|
||||
- Secure password storage
|
||||
|
||||
### Using the Mail Utility
|
||||
|
||||
```typescript
|
||||
import { sendNotificationEmail, sendReportEmail } from "~/utils/mail.server";
|
||||
|
||||
// Send a simple notification
|
||||
const result = await sendNotificationEmail(
|
||||
"user@example.com",
|
||||
"Report Generated",
|
||||
"Your report has been generated successfully."
|
||||
);
|
||||
|
||||
// Send HTML email
|
||||
const htmlResult = await sendNotificationEmail(
|
||||
["user1@example.com", "user2@example.com"],
|
||||
"Weekly Report",
|
||||
"<h1>Weekly Report</h1><p>Please find the report attached.</p>",
|
||||
true // isHtml
|
||||
);
|
||||
|
||||
// Send report with attachments
|
||||
const reportResult = await sendReportEmail(
|
||||
"manager@example.com",
|
||||
"Daily Operations Report",
|
||||
reportData,
|
||||
[
|
||||
{
|
||||
filename: "report.pdf",
|
||||
content: pdfBuffer,
|
||||
contentType: "application/pdf"
|
||||
}
|
||||
]
|
||||
);
|
||||
```
|
||||
|
||||
### Available Mail Functions
|
||||
- `sendEmail(options)` - Core email sending function
|
||||
- `sendNotificationEmail(to, subject, message, isHtml)` - Simple notifications
|
||||
- `sendReportEmail(to, subject, reportData, attachments)` - Reports with attachments
|
||||
- `testEmailConnection()` - Test SMTP configuration
|
||||
|
||||
## Development
|
||||
|
||||
The app uses:
|
||||
- **Remix** - Full-stack web framework
|
||||
- **Prisma** - Database ORM
|
||||
- **SQLite** - Database
|
||||
- **Tailwind CSS** - Styling
|
||||
- **TypeScript** - Type safety
|
||||
Loading…
Reference in New Issue
Block a user