TaskFlow is a task management application designed to help individuals efficiently organize their personal tasks and boost productivity. This repository contains the Backend implementation of TaskFlow, built using Java, Spring Boot and Spring Security.
Individuals require an effective solution to efficiently organize their personal tasks spanning various related and/or unrelated responsibilities, aiming to boost productivity.
Individuals seeking personal task organization.
As a user, I want to be able to sign up for an account so that I can access the application and manage my tasks.
- As a new user, I can sign up for a new account.
- On the sign-up form, I can provide my first name, last name, email, password, confirm password, and phone number.
- Upon successful sign-up, I should receive a confirmation email with a token to validate my account, after which I can log in using my email and password.
- As a registered user, I can log in to my account.
- On login, I will use my email and password.
- Upon successful login, I should be able to:
- Create tasks with specific details such as title, description, deadline, and priority level (HIGH, MEDIUM, LOW, NONE).
- View details of a specific task by its title or ID.
- View all tasks associated with a specific user.
- Edit a task successfully.
- Delete a task successfully.
- Filter tasks by their status (PENDING, IN_PROGRESS, COMPLETED).
- View a list of completed tasks separately.
- Log out of my account.
-
Frontend:
- HTML
- CSS
- JavaScript
- Bootstrap
-
Backend:
- Spring Boot
- Spring Security / JWT
- MySQL
- Postman
- GIT
You can use Postman (for testing the API endpoints):
- Download and install Postman from here.
- Use Postman to send requests to the API endpoints in the Controllers and verify their responses.
Or Clone the Frontend Repo (for a simple frontend setup):
-
Clone the frontend repository from here.
git clone https://github.com/Neche-Stephen/task-flow-frontend.git cd task-flow-frontend
-
Open the project in Visual Studio Code (VS Code). - VS Code (recommended for Live Server):
-
Download and install Visual Studio Code from here.
-
Install the Live Server extension in VS Code.
-
After cloning, open the index.html file in VS Code and run it with Live Server to view the Landing page.
This setup will allow you to test the TaskFlow backend API endpoints either using Postman or by setting up a simple frontend with Live Server. Ensure the backend server is running and accessible at http://localhost:8080 before proceeding with these options.
- Install Java JDK:
Download and install the Java JDK from here. Ensure you have JDK 17 installed by running java -version in your terminal/command prompt.
- Install an IDE (IntelliJ IDEA or any other):
Download and install IntelliJ IDEA from here. Alternatively, you can use any other IDE you are comfortable with.
-
Clone the repository:
git clone https://github.com/Neche-Stephen/task-flow-backend.git cd task-flow-backend
-
Configure the MySQL database:
- Update the
application.properties
file with your MySQL credentials.
- Update the
-
Build and run the application:
Using the Maven wrapper: Run the following commands:
./mvnw clean install ./mvnw spring-boot:run
Using IntelliJ IDEA: Open the project in IntelliJ IDEA. Click the play button (Run) in IntelliJ to start the application.
- Ensure both frontend and backend servers are running.
- Open the frontend application in your browser.
- Register or log in to your account.
- Create, view, edit, or delete your tasks.
-
User Authentication:
- Sign up, login, and receive email confirmation for new accounts.
-
Task Management:
- Create, view, edit, delete, and filter tasks.
- View tasks by status and see a list of completed tasks.
-
User Interface:
- Clean and responsive design using Bootstrap.
We welcome contributions from the community. To contribute, please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name
- Make your changes and commit them:
git commit -m "Add your feature"
- Push to the branch:
git push origin feature/your-feature-name
- Open a pull request to the main repository.
This project is licensed under the MIT License.
For any questions or suggestions, feel free to reach out or open an issue on GitHub.
Thank you for using TaskFlow!