Welcome to the Company Task Management System! This system allows efficient management of users and task assignments within our organization. The backend is built with Flask, a Python web framework, providing robust and scalable API endpoints. On the frontend, we utilize React with TypeScript for a modern and type-safe user interface.
- User Management: Manage users including creation, update, deletion, and retrieval of user details.
- Task Assignment: Assign tasks to users with due dates, descriptions, and statuses (e.g., in progress, completed).
- Department Management: Organize users into departments for streamlined collaboration.
- Dashboard: Provides insights into task completion rates, departmental performance, and pending tasks.
- Backend: Flask, SQLAlchemy (ORM for database operations), Flask-RESTful (API development)
- Frontend: React, TypeScript, Axios (HTTP client for making API requests)
- Database: SQLite (for development), PostgreSQL (recommended for production)
- Python 3.7+
- Node.js 12+
- npm or yarn
-
Clone the repository:
git clone https://github.com/Ngaremaina/Company-System cd backend
-
Create a virtual environment and activate it:
python -m venv env source env/bin/activate # On Windows use `env\Scripts\activate`
-
Install dependencies:
pip install -r requirements.txt
-
Run the Flask application:
python main.py
-
Navigate to the frontend directory:
cd my-app
-
Install dependencies:
npm install # or yarn install
-
Start the React development server:
npm start # or yarn start
-
Access the application in your browser at
http://localhost:3000
.
-
Ensure Docker and Docker Compose are installed on your system.
-
Navigate to the project root directory.
-
Build and run the Docker containers:
docker-compose up --build
The Flask API backend will be accessible at http://localhost:5000
and the React frontend at http://localhost:3000
.
- GET /users: Fetch all users.
- POST /users: Create a new user.
- GET /users/:id: Fetch user details by ID.
- PATCH /users/:id: Update user details.
- DELETE /users/:id: Delete user by ID.
- GET /tasks: Fetch all tasks.
- POST /tasks: Create a new task.
- GET /tasks/:id: Fetch task details by ID.
- PATCH /tasks/:id: Update task details.
- DELETE /tasks/:id: Delete task by ID.
- GET /departments: Fetch all departments.
- POST /departments: Create a new department.
- GET /departments/:id: Fetch department details by ID.
- PATCH /departments/:id: Update department details.
- DELETE /departments/:id: Delete department by ID.
This project is licensed under the Apache License - see the LICENSE file for details.