starsync is a versatile project management system designed to streamline your project workflow, offering efficient management for administrators, project managers, and team members. With this system, you can easily create and monitor projects, allocate tasks, and track progress. It provides distinct features tailored for each role, enabling you to collaborate seamlessly.
For a detailed demonstration of Starsync's features, please check out our Feature Walkthrough Video.
- User Roles: starsync supports three user roles: Admin, Project Manager, and Team Member, each with role-specific capabilities.
- User Registration: New users can register with their roles (Admin, Project Manager, or Team Member).
- User Login: Secure login process that provides access tokens.
- Profile Information: Retrieve user profile information, including name, email, and role.
- Admin Dashboard: View project details, the number of projects, team members, project managers, and new projects.
- Create New Project: Create new projects, including details like project name, description, start date, end date, and project manager assignment.
- Get All Projects: Retrieve a list of all projects.
- Update Project: Modify project details.
- Delete Project: Remove projects from the system.
- Get All Project Managers: List all project managers in the system.
- Update Project Status: Update the status of a project.
- Get Team Members: Retrieve a list of team members.
- Get Projects: List projects assigned to the project manager.
- Add Tasks to Project: Assign tasks to projects.
- Get Project Tasks: Retrieve tasks associated with a project.
-
Get Tasks: Retrieve tasks assigned to a team member.
-
Update Task Status: Change the status of a task.
Our design approach focuses on user roles and their specific needs. We assume that users have a basic understanding of project management principles. Additionally, we assume that users will access the system through a web browser.
- Clone the starsync repository from GitHub.
- Navigate to the project's root directory.
- Set up the Flask backend and Angular frontend as specified in their respective README files.
- Configure your MySQL database with the required tables and data.
- Start the Flask server and Angular development server.
- Access the project management system through your web browser.
The typical user journey involves the following steps:
- Register a new user with the desired role.
- Log in with your credentials to access the system.
- Based on your role (Admin, Project Manager, or Team Member), utilize the features tailored to your responsibilities.
- Create, manage, and monitor projects, assign tasks, and collaborate with team members.
- Get Role: GET /role - Retrieves the role of the authenticated user.
- Register: POST /register - Registers a new user with a specified role.
- Log In: POST /login - Allows a user to log in and receive an access token.
- Profile: POST /profile - Retrieves the profile information of the authenticated user.
- Admin Dashboard: GET /admin/dashboard - Retrieves project details for the admin user.
- Create New Project: POST /admin/project/new - Creates a new project by an admin user.
- Get All Projects: GET /admin/projects - Retrieves a list of all projects for the admin user.
- Update Project: PUT /admin/projects/update/int:id - Updates project details by an admin user.
- Delete Project: DELETE /admin/projects/delete/int:id - Deletes a project by an admin user.
- Get All Project Managers: GET /admin/get-all-project-managers - Retrieves a list of all project managers for the admin user.
- Update Project Status: GET /manager/project/int:project_id/update-status/string:status - Allows a project manager to update the status of a project.
- Get Team Members: GET /manager/team-members - Retrieves a list of team members for a project manager.
- Get Projects: GET /manager/projects - Retrieves a list of projects assigned to a project manager.
- Add Tasks to Project: POST /manager/project/add-tasks - Allows a project manager to add tasks to a project.
- Get Project Tasks: GET /manager/projects/tasks/int:project_id - Retrieves tasks associated with a project for a project manager.
- Get Tasks: GET /team/tasks - Retrieves tasks assigned to a team member.
- Update Task Status: GET /team/tasks/int:task_id/update-status/string:status - Allows a team member to update the status of a task.
- Front-end: Angular
- Back-end: Flask
- Database: MySQL
- Additional Components: JWT Authentication, Role-based Access Control
Thank you for choosing starsync as your project management system. If you have any questions or need further assistance, please contact me.