Task Manager
Project Overview
Task Manager is a web application for managing tasks that allows users to create, view, update, and delete tasks. Tasks can be filtered by priority and due date, and searched by title or description. The application uses a tech stack that includes Astro, Svelte, Prisma, and SQLite.
This project was developed for educational purposes to learn modern web development technologies and server-side actions in Astro.
Project Status
This project is currently under active development. Features may change and functionality might be incomplete. Contributions and feedback are welcome!
Main Features
- Create Task: Users can add new tasks by specifying parameters such as title, description, priority (low, medium, high), due date, and status (new, in progress, completed, active).
- View Tasks: Users can view a list of tasks, navigate between pages with a default limit of 10 tasks per page, filter tasks by priority and due date, and search by title and description.
- Update Task: Update task information by its unique identifier.
- Delete Task: Delete a task by its unique identifier.
User Identification
- On the user's first visit to the application, the system checks for the presence of a userId in the cookies.
- If no userId is found, a new unique identifier is generated using the uuid library.
- The userId is used to retrieve and display tasks that belong to the specific user.
Technologies
- Astro: Framework for building static websites with server actions support.
- Svelte: Frontend framework for creating components.
- Prisma: ORM for interacting with the SQLite database.
- SQLite: Local database.
- Tailwind CSS: Utility-first CSS framework for component styling.
- Jest: Testing framework for server actions.
Installation and Usage
Installation
To install the project dependencies, run the following command:
yarn install
Set Up the Database
Initialize Prisma and apply the database schema migration:
npx prisma migrate dev --name init
npx prisma generate
Development Server
To start the development server, run:
yarn dev
The development server will start on http://localhost:4321/.
Build for Production
To create a production build, run:
yarn build
Preview Production Build
To preview the production build locally, run:
yarn preview
Testing
Run the tests with the following command:
yarn test
Author
Marina Lebedeva
License
This project is licensed under the MIT License. For more information, see the LICENSE file.