- 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 Forbidden
errors. - 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 run
This 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: [email protected]
- LinkedIn: Mikhailo Bezuhlyi