Skip to content

Commit 11b664e

Browse files
author
Avenita
committed
Refactor project structure and update dependencies
- Removed unused PostCSS and Tailwind configuration files. - Updated `pdfjs-dist` dependency to version 5.4.449 for improved PDF handling. - Modified `package.json` description for clarity. - Adjusted CSS imports to use the correct file extension. - Cleaned up main application code for better readability and maintainability. - Enhanced IPC communication for file loading notifications in projector mode.
1 parent ca4e706 commit 11b664e

26 files changed

+1845
-1099
lines changed

.vscode/launch.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
"runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd"
2626
},
2727
"args": [".", "--remote-debugging-port=9222"],
28+
"runtimeArgs": ["--preserve-symlinks"],
2829
"outputCapture": "std",
2930
"console": "integratedTerminal"
3031
}

.vscode/settings.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
{
2+
}

LICENSE

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
MIT License
2+
3+
Copyright (c) 2025 AvenitaDev
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.
22+
23+

README.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
<p align="center">
2+
<img src="src/assets/icon@2.png" alt="SimpleProjector Logo" width="200">
3+
</p>
4+
5+
## SimpleProjector
6+
7+
SimpleProjector is a cross‑platform desktop app built with Electron and React to make **projection simple, elegant, and reliable**. It is designed for ads, work presentations, classrooms, events, and any situation where you need to put content on a screen without fighting the tooling.
8+
9+
### Vision
10+
11+
- **Simplicity first**: Focus on your content, not on configuring complex slides or playlists.
12+
- **Elegant by default**: Clean, distraction‑free projection with a modern UI.
13+
- **Versatile use cases**: From digital signage and ads to quick work demos and talks.
14+
- **Open‑source spirit**: Transparent code, community‑friendly, and easy to extend.
15+
16+
### Core Features
17+
18+
- **Drag & drop projection**
19+
- Drop images, PDFs, and other supported files into the app to prepare them for projection.
20+
- Quickly reorder or remove items before presenting.
21+
22+
- **Projector view**
23+
- A dedicated, borderless window optimized for external displays or projectors.
24+
- Shows only the selected content so your main screen can stay private.
25+
26+
- **File management**
27+
- Thumbnail previews of your content for quick identification.
28+
- Simple list of files that you can navigate and select for projection.
29+
30+
- **Import / export**
31+
- Save your current playlist or setup so you can reuse it later or share it with another machine.
32+
- Import existing configurations to get a full projection layout ready in seconds.
33+
34+
- **PDF support**
35+
- Uses `pdfjs-dist` to render PDF pages cleanly.
36+
- Navigate pages smoothly for reports, documents, or print‑style layouts.
37+
38+
- **App settings**
39+
- Basic configuration for behavior and appearance (depending on your current build).
40+
- Designed so more options can be added without complicating the UI.
41+
42+
### Architecture & Design Principles
43+
44+
- **Electron + React + TypeScript**
45+
- Electron powers the desktop shell on Windows, macOS, and Linux.
46+
- React and TypeScript provide a robust, type‑safe renderer UI.
47+
48+
- **Clean Architecture & SOLID‑oriented**
49+
- UI components in `src/components` stay focused on presentation and interaction.
50+
- Domain concepts (like files, settings, and projector behavior) are modeled in `src/types` and `src/lib`.
51+
- Logic is structured to be testable and replaceable, keeping infrastructure details (Electron APIs, file system, etc.) at the edges.
52+
53+
### Getting Started (Development)
54+
55+
1. **Install dependencies**
56+
57+
```bash
58+
npm install
59+
```
60+
61+
2. **Run in development**
62+
63+
```bash
64+
npm start
65+
```
66+
67+
3. **Build distributables**
68+
69+
```bash
70+
npm run make
71+
```
72+
73+
Packages are created under the `out` directory for each supported platform.
74+
75+
### Contributing
76+
77+
- **Issues & ideas**: Propose improvements such as new file types, scheduling for ads, or better projector controls.
78+
- **Code style**: Follow the existing TypeScript/React patterns and keep modules small and focused.
79+
- **Architecture**: Respect the separation between UI, domain logic, and infrastructure to keep the project maintainable.
80+
81+
### License
82+
83+
This project is released under the **MIT License**, as defined in `package.json`. You are free to use, modify, and distribute it, subject to the terms of that license.

forge.env.d.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
/// <reference types="@electron-forge/plugin-vite/forge-vite-env" />
22

3-
// Declare Vite constants injected by Electron Forge
43
declare const MAIN_WINDOW_VITE_DEV_SERVER_URL: string | undefined;
54
declare const MAIN_WINDOW_VITE_NAME: string;
65
declare const PROJECTOR_WINDOW_VITE_NAME: string | undefined;

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "SimpleProjector",
33
"productName": "SimpleProjector",
44
"version": "1.0.0",
5-
"description": "My Electron application description",
5+
"description": "A simple projector for your important presentations",
66
"main": ".vite/build/main.js",
77
"scripts": {
88
"start": "electron-forge start",
@@ -57,7 +57,7 @@
5757
"clsx": "^2.1.1",
5858
"electron-squirrel-startup": "^1.0.1",
5959
"lucide-react": "^0.554.0",
60-
"pdfjs-dist": "^5.4.394",
60+
"pdfjs-dist": "^5.4.449",
6161
"react": "^19.2.0",
6262
"react-dom": "^19.2.0",
6363
"tailwind-merge": "^3.4.0"
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
export default {
22
plugins: {
3-
'@tailwindcss/postcss': {},
3+
"@tailwindcss/postcss": {},
44
autoprefixer: {},
55
},
6-
}
7-
6+
};

src/assets/pdf.worker.min.mjs

Lines changed: 28 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)