Introduction
During my internship at Valentius Kryptix, I worked on a project focused on developing a REST API using Django. The project was a Task Manager REST API, designed to allow users to create, view, update, and delete tasks through API endpoints.
This project helped me understand how backend applications communicate with clients through APIs and how authentication can be used to protect sensitive endpoints. I also gained practical experience with Django REST Framework, API testing, request methods, status codes, and token-based authentication.
Project Overview
The main objective of the project was to build a functional REST API for managing tasks. The API provides different endpoints for user registration, login, and task management.
The main technologies used in this project were:
- Python
- Django
- Django REST Framework
- SQLite
- Token Authentication
The project follows REST principles and uses HTTP methods such as GET, POST, PUT, and DELETE for different operations.

Figure 1 : Django development server running successfully.
User Registration
The first part of the project was implementing user registration. A user can register through the /api/register/ endpoint by providing the required information.
After successful registration, the API returns a successful response along with an authentication token. This helped me understand how user registration can be connected with authentication in a backend application.

Figure 2: Successful user registration response from the API.
User Login and Authentication
The next step was implementing login functionality using the /api/login/ endpoint. After providing valid login credentials, the API returns an authentication token.
The token is then used to access protected task-management endpoints. This ensures that only authenticated users can perform operations on the task API.

Figure 3: Successful login response with authentication token.
Protecting API Endpoints
One important part of the project was protecting the task endpoints from unauthenticated users.
When a request is made to a protected endpoint without providing a valid authentication token, the API returns a 401 Unauthorized response.
This helped me understand the importance of authentication and access control when developing backend APIs.

Figure 4: Unauthorized request to a protected API endpoint.
CRUD Operations
The main functionality of the project is Task Management using CRUD operations.
CRUD stands for:
- Create – Add a new task using POST.
- Read – View tasks using GET.
- Update – Modify an existing task using PUT.
- Delete – Remove a task using DELETE.
Each task contains information such as the title, description, status, priority, and creation time.
Creating and Viewing Tasks
The POST method is used to create a new task. Once a task is created successfully, the API returns the task details with an appropriate HTTP response.
The GET method is used to retrieve the available tasks. This makes it possible for an authenticated user to view their task information through the API.

Figure 5: Task data returned successfully through the REST API.
Updating Tasks
The PUT method is used to update an existing task. During testing, I updated task details such as the title, description, status, and priority.
The API returns a successful response after the task is updated.
Deleting Tasks
The DELETE method is used to remove a task from the system. This completes the CRUD functionality of the Task Manager API.
API Validation and Status Codes
Another important part of the project was handling different API responses and HTTP status codes.
The API uses appropriate status codes depending on the result of a request. For example, 200 indicates a successful request, 201 indicates successful creation, 400 indicates an invalid request, 401 indicates that authentication is required, and 404 indicates that the requested resource was not found.
Working with these responses helped me understand how APIs communicate the result of client requests clearly.
Key Learnings
This project gave me practical experience in several areas of backend development.
First, I learned how to build REST APIs using Django REST Framework and how different HTTP methods are used to perform CRUD operations.
Second, I learned how token-based authentication can be implemented to protect API endpoints from unauthorized access.
Finally, I improved my understanding of API testing, request validation, response handling, and HTTP status codes.
Conclusion
Building the Task Manager REST API was a valuable learning experience during my internship at Valentius Kryptix. It allowed me to apply Python and Django concepts to a practical backend project.
Through this project, I gained a better understanding of REST API development, authentication, CRUD operations, validation, and API testing. The experience also helped me become more comfortable with backend development and gave me a stronger foundation for working on future software development projects.
I am grateful to Valentius Kryptix for providing me with the opportunity to work on this project and develop my technical skills through practical experience.



Leave a Reply
You must be logged in to post a comment.