Add TuxiNet branding and document templates
This commit is contained in:
77
README.md
77
README.md
@@ -1 +1,76 @@
|
||||
# CMS
|
||||
# TuxiNet Portal
|
||||
|
||||
This repository contains the groundwork for a dark-themed, responsive customer portal that unifies customer management, project tracking, and an issue/bug workflow. The stack uses vanilla PHP 8.2+ with a lightweight framework layer tailored for Simply.com hosting environments and the `portal.tuxinet.dk` subdomain deployment.
|
||||
|
||||
## Features included in this initial foundation
|
||||
|
||||
- Minimal front controller with PSR-4 autoloading and route registration.
|
||||
- Session-backed authentication service with Argon2id password hashing.
|
||||
- Dark mode responsive layout scaffold for login and dashboard views.
|
||||
- Config-driven environment loading via `.env` file.
|
||||
- MySQL-compatible migration runner with dedicated migrations for all core domain tables (customers, projects, issues, comments, attachments, subscriptions, activity, audit, and settings).
|
||||
- Configurable mail service built on PHPMailer with SMTP and sendmail support tailored for Simply.com hosting.
|
||||
- TuxiNet.dk branding assets plus shared document templates for offers and invoices that automatically include the company logo.
|
||||
- Extensible service, model, and middleware layers prepared for RBAC, notifications, and future modules.
|
||||
|
||||
## Getting started
|
||||
|
||||
1. Copy `.env.example` to `.env` and adjust connection credentials:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
2. Install dependencies (including PHPMailer):
|
||||
|
||||
```bash
|
||||
composer install
|
||||
```
|
||||
|
||||
3. Configure the database credentials for your Simply.com MySQL server and adjust upload/mail parameters in `.env`.
|
||||
|
||||
4. Review the branding block at the bottom of `.env` or `config/branding.php` if you need to update the default company name, public domain, or logo path. By default the portal ships with the TuxiNet.dk logo located at `public/assets/branding/tuxinet-logo.svg`, which is automatically included on all rendered offers and invoices.
|
||||
|
||||
5. Run migrations to create all database tables:
|
||||
|
||||
```bash
|
||||
php bin/migrate
|
||||
```
|
||||
|
||||
6. Point your web server document root to `public/` and ensure the vhost/subdomain is `portal.tuxinet.dk` so absolute URLs render correctly.
|
||||
|
||||
7. Create an initial sysadmin user manually (e.g. via SQL) and log in using `/login`.
|
||||
|
||||
## Next steps
|
||||
|
||||
- Implement RBAC-aware route middleware for each role and feature module.
|
||||
- Flesh out controllers/views for customers, projects, issues, and settings management.
|
||||
- Integrate mail notifications, subscription logic, and audit logging handlers.
|
||||
- Add file upload handling with MIME validation and thumbnail generation.
|
||||
- Build CSV export, saved filters, and read-only sharing features.
|
||||
|
||||
## Branding & document templates
|
||||
|
||||
- The active logo lives at `public/assets/branding/tuxinet-logo.svg` and is referenced via `config('branding.logo_path')`.
|
||||
- Update `.env` if you need to change the brand copy or email signature. The defaults reflect the TuxiNet.dk identity and the `portal.tuxinet.dk` hostname.
|
||||
- Offer and invoice renderers can target the shared templates at `resources/views/documents/offer.php` and `resources/views/documents/invoice.php`. Both templates automatically include the logo header defined in `resources/views/documents/layout.php`.
|
||||
|
||||
## Folder structure
|
||||
|
||||
```
|
||||
app/
|
||||
Controllers/
|
||||
Core/
|
||||
Http/Middleware/
|
||||
Models/
|
||||
Services/
|
||||
Support/
|
||||
bootstrap/
|
||||
config/
|
||||
database/migrations/
|
||||
public/
|
||||
resources/views/
|
||||
routes/
|
||||
```
|
||||
|
||||
This structure keeps the codebase organised and ready for incremental feature development across authentication, project management, and notification workflows.
|
||||
|
||||
Reference in New Issue
Block a user