Compare commits

..

No commits in common. "056f9fc562481cbe8522b122fa54e94b042db8fc" and "24018ab582e15fca4c46fe626b66771724974cdf" have entirely different histories.

8 changed files with 8004 additions and 70 deletions

View File

@ -70,13 +70,6 @@ jobs:
uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5.0.0
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=raw,value=latest,enable={{is_default_branch}}
# Build and push Docker image with Buildx (don't push on PR)
# https://github.com/docker/build-push-action

3
.gitignore vendored
View File

@ -1,3 +1,2 @@
/.DS_Store
/.dockerignore
/node_modules
/package-lock.json

View File

@ -1,5 +1,4 @@
# Build stage
FROM node:20-alpine AS builder
FROM node:20-alpine
WORKDIR /app
@ -14,18 +13,3 @@ COPY . .
# Build the application
RUN npm run build
# Production stage
FROM nginx:alpine
# Copy built files from builder stage
COPY --from=builder /app/dist /usr/share/nginx/html
# Copy nginx configuration (if needed)
# COPY nginx.conf /etc/nginx/conf.d/default.conf
# Expose port 80
EXPOSE 80
# Start nginx
CMD ["nginx", "-g", "daemon off;"]

View File

@ -1,9 +1,7 @@
# Negotium - Minimalist To Do App
# Negotium
A beautiful, minimal to-do list application featuring smooth animations, intelligent date management, and a modern design that helps you stay organized and productive.
![Negotium Screenshot](assets/screenshot.png)
## 💭 Why Negotium?
While powerful tools like Trello and Vikunja excel at managing complex projects and long-term planning, sometimes you just need a simple, focused space for your daily tasks. That's why I built Negotium, a straightforward to-do list for today and tomorrow. Nothing more, nothing less.
@ -22,34 +20,12 @@ Built with Svelte for speed and simplicity. No overwhelming features, no endless
## 🚀 Getting Started
### Quick Start with Docker (Recommended)
Pull and run the pre-built Docker image:
```bash
# Pull the image
docker pull ghcr.io/aculix/negotium:main
# Run the container
docker run -d -p 3000:80 --name negotium ghcr.io/aculix/negotium:main
```
Then open `http://localhost:3000` in your browser.
To stop the container:
```bash
docker stop negotium
docker rm negotium
```
### Manual Installation
If you prefer to run the application locally without Docker:
### Installation
1. Clone the repository:
```bash
git clone <repository-url>
cd negotium
cd simple-do
```
2. Install dependencies:
@ -64,7 +40,7 @@ npm run dev
4. Open `http://localhost:3000` in your browser
#### Build for Production
### Build for Production
```bash
npm run build

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 195 KiB

View File

@ -15,7 +15,17 @@
let selectedDate = new Date().toDateString();
let draggedItem = null;
let draggedOverIndex = null;
let currentDateDisplay = '';
const initialTasks = [
{ id: 1, text: 'Grocery shopping', completed: false, createdAt: Date.now() - 86400000 },
{ id: 2, text: "Book doctor's appointment", completed: false, createdAt: Date.now() - 172800000 },
{ id: 3, text: 'Pay bills', completed: true, createdAt: Date.now() - 259200000 },
{ id: 4, text: 'Finish project report', completed: false, createdAt: Date.now() - 345600000 },
{ id: 5, text: 'Call mom', completed: false, createdAt: Date.now() - 432000000 },
{ id: 6, text: 'Plan weekend trip', completed: true, createdAt: Date.now() - 518400000 },
{ id: 7, text: 'Read a chapter of a book', completed: false, createdAt: Date.now() - 604800000 },
{ id: 8, text: 'Exercise', completed: false, createdAt: Date.now() - 691200000 }
];
function addTask() {
if (newTask.trim()) {
@ -86,16 +96,13 @@
draggedOverIndex = null;
}
$: {
currentDateDisplay = (() => {
const date = new Date(selectedDate);
return date.toLocaleDateString('en-US', {
function getCurrentDate() {
return new Date().toLocaleDateString('en-US', {
weekday: 'long',
year: 'numeric',
month: 'long',
day: 'numeric'
});
})();
}
function getDateKey(dateString) {
@ -107,7 +114,7 @@
if (savedTasks) {
tasks = JSON.parse(savedTasks);
} else {
tasks = [];
tasks = dateString === new Date().toDateString() ? initialTasks : [];
}
}
@ -286,7 +293,7 @@
<div class="container">
<div class="content-header">
<h2 class="section-title">To-dos</h2>
<div class="date-display">{currentDateDisplay}</div>
<div class="date-display">{getCurrentDate()}</div>
</div>
<div class="task-input-container">

View File

@ -440,6 +440,11 @@ body {
width: 200px;
height: 200px;
margin: 0 auto 24px;
filter: brightness(0) saturate(100%) invert(46%) sepia(89%) saturate(2445%) hue-rotate(224deg) brightness(101%) contrast(98%);
}
.dark .lottie-animation {
filter: brightness(0) saturate(100%) invert(59%) sepia(51%) saturate(3127%) hue-rotate(218deg) brightness(103%) contrast(101%);
}
.empty-state p {