This is a full-stack Task Management App built with:
- Flask for the backend (API, authentication, task management).
- React for the frontend (user interface to interact with tasks).
This app allows users to register, log in, and manage their tasks. Tasks can be created, updated, marked as completed, and deleted. JWT (JSON Web Tokens) are used for authentication and task access control.
- Backend:
flask-backend/(Flask API) - Frontend:
react-frontend/(React UI)
Before setting up the project, ensure you have the following tools installed:
- Python 3.6+
- SQLite 3
- Git (to clone the repository)
- Open your terminal or command prompt.
- Run the following command to clone the repository:
git clone https://github.com/your-username/TaskManagementApp.git
cd TaskManagementApp-
Navigate to the backend directory:
cd flask-backend -
Create a virtual environment:
python -m venv venv
-
Activate the virtual environment:
- On Windows:
venv\Scripts\activate
- On macOS/Linux:
source venv/bin/activate
- On Windows:
-
Install the required dependencies:
pip install -r requirements.txt
-
Initialize the SQLite database: The database supposed to automatically deploy when the app starts based on the config.py file. (sometimes the db has trouble deplying and you need to run flask run press ctrl+c and then flask run again)
-
Run the backend: Once everything is set up, run the Flask development server:
flask run
This will also create a
task_management.dbfile in the instance folder with the necessary tables.The API will be available at
http://127.0.0.1:5000/.
-
Navigate to the frontend directory:
cd react-frontend -
Install the required dependencies:
npm install
-
Run the React frontend:
npm start
The frontend will be available at
http://localhost:3000/.
Once both the Flask backend and React frontend are running, you can interact with the application:
- Backend: API endpoints can be tested via Postman or directly from the React frontend.
- Frontend: Use the UI to register, log in, create, update, complete, or delete tasks.
- The app uses SQLite as the database, which will be created automatically in the
instancefolder.
- JWT (JSON Web Token) is used for securing the API. Ensure to pass the token in the
Authorizationheader when making API requests.