A full-stack project management tool developed for Tesis, a global company dedicated to providing professional IT and Automation services. This tool is designed to help its teams organize, track, and complete projects efficiently, enabling comprehensive management of tasks, projects, teams, and priorities with a modern and intuitive user interface.
- Project Management: Create, update, and delete projects. View all your projects on a central dashboard.
- Task Management: Assign tasks to projects and users, set priorities (Urgent, High, Medium, Low), and due dates.
- Flexible Views: Visualize your tasks and projects in different formats:
- Board View (Kanban): Organize tasks by status (To Do, In Progress, Done).
- List View: A simple and clear list of all tasks.
- Table View: Detailed task data in a tabular format.
- Timeline: Plan and visualize your project schedule.
- Team Collaboration: Create teams, assign members to projects, and facilitate collaboration.
- Authentication & Users: Registration and login system to manage access.
- Global Search: Quickly find projects, tasks, or users throughout the application.
This project is a monorepo application with a separate client and server.
- Framework: Next.js 14+ (with App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- State Management: Redux Toolkit
- UI/Components: Custom components and Headless UI.
- Environment: Node.js
- Framework: Express.js
- Language: TypeScript
- ORM: Prisma for safe and easy database interaction.
- Database: Compatible with PostgreSQL, MySQL, SQLite, etc. (configurable in Prisma).
Follow these steps to set up and run the project in your local environment.
git clone https://github.com/andresjimenez11/thesis-project-manager.git
cd thesis-project-manager
First, set up and run the server.
# Navigate to the server folder
cd server
# Install dependencies
npm install
# Create a .env file from the example
# and configure it with your database URL.
# Example for PostgreSQL:
# DATABASE_URL="postgresql://user:password@localhost:5432/mydatabase"
touch .env
Contents of the server/.env
file:
DATABASE_URL="YOUR_DATABASE_URL_HERE"
# Run database migrations with Prisma
npx prisma migrate dev
# (Optional) Seed the database with sample data
npx prisma db seed
# Start the development server
npm run dev
The server will be running at http://localhost:5000
(or the port you have configured).
Now, set up and run the client.
# From the project root, navigate to the client folder
cd ../client
# Install dependencies
npm install
# Create a .env.local file for the client's environment variables.
# Point it to your backend API URL.
touch .env.local
Contents of the client/.env.local
file:
NEXT_PUBLIC_API_URL=http://localhost:5000
# Start the development client
npm run dev
The web application will be available at http://localhost:3000
.
Contributions are welcome. If you wish to improve this project, please follow these steps:
- Fork this repository.
- Create a new branch (
git checkout -b feature/new-feature
). - Make your changes and Commit them (
git commit -m 'Add new feature'
). - Push to your branch (
git push origin feature/new-feature
). - Open a Pull Request.
Please open an issue first to discuss any major changes you wish to make.
This project is under the MIT License. See the LICENSE
file for more details.
Andrés Felipe Jiménez
- GitHub: @andresjimenez11