- About
- Screenshots and GIFs
- Features
- Technologies Used
- Setup Instructions
- Project Status
- Contribution Guidelines
- Contact
TodoList is an open-source and reverse-engineered version of Jira. It simplifies task and project management while maintaining essential features. This backend repository supports the frontend counterpart with a robust API, leveraging modern development practices and technologies.
Here are some visuals showcasing the features:
Drag-and-Drop Columns and Cards:

Add Descriptions and Comments:

- CRUD Operations: Manage Boards, Columns, Cards, and Comments.
- Drag-and-Drop: Reorder Columns and Cards to adjust task sequences dynamically.
- User Authentication: Secure Login and Registration, with a blocklist of prohibited usernames like
API,signin,forgot_password,admin, etc. - Isolated User APIs: Prevent unauthorized access to other users' data by enforcing strict
403 Forbiddenerrors. - Dark Mode Only: A minimalist design with a focus on dark mode.
- Framework: ASP.NET Core based on Clean Architecture principles by Ardalis.
- Dependency Injection: Autofac.
- API Framework: FastEndpoints.
- Database: PostgreSQL using EF Core.
- Testing:
- Functional Tests
- Integration Tests
- Unit Tests
- Libraries: XUnit, NSubstitute, Bogus, FluentAssertions, WebApplicationFactory.
- Authentication: JWT tokens for secure user validation.
- ID Generation: Ulid for all entities.
- Other Libraries: MediatR, RestSharp, Swagger for API documentation.
- Framework: Vite with React.
- State Management: Redux and Redux Toolkit.
- UI Framework: Material UI (MUI).
- Routing: React Router.
Ensure you have the following installed:
- .NET SDK
- PostgreSQL
- Node.js (for the frontend setup, if applicable)
Add the following environment variables to your system:
PASSWORD_SALT_SECRET: Secret value used for hashing passwords.JWT_SECRET: Secret key for generating and validating JWT tokens.DEFAULT_CONNECTION: Connection string for your PostgreSQL database.
Example .env file:
PASSWORD_SALT_SECRET=your_salt_secret
JWT_SECRET=your_jwt_secret
DEFAULT_CONNECTION=Host=localhost;Database=TodoList;Username=postgres;Password=your_password- Clone the repository
git clone https://github.com/Mishatopkek/TodoListBackend.git
cd TodoListBackend- Restore dependencies:
dotnet restore
Apply migrations to set up the database:- Apply migrations to set up the database:
dotnet ef database update
Start the application:- Start the application:
dotnet runThis is an alpha version. The main features are functional and ready to use, but improvements and additional features are planned.
Contributions are welcome! If you'd like to contribute:
- Fork the repository.
- Create a feature branch.
- Commit your changes.
- Open a pull request.
For any inquiries or feedback, feel free to reach out:
- Email: bezuhlyi.mykhailo@gmail.com
- LinkedIn: Mikhailo Bezuhlyi


