Planzo is a robust API-based system built with Ruby on Rails, designed to manage projects, tasks, and users efficiently. This API allows seamless project and task management while maintaining user authentication and role-based access control.
- User Authentication & Authorization: Secure user authentication with role-based access.
- Project Management: Create, update, and manage projects with defined durations and start times.
- Task Management: Associate tasks with projects, define durations, and track completion.
The database schema consists of the following core models:
- User: Manages user authentication and roles.
- Project: Defines project details and duration.
- Task: Tracks task-specific details linked to a project.
- ProjectUser: Manages user assignments to projects.
- Ruby on Rails (API Mode)
- PostgreSQL (Database)
- RSpec (Testing)
- GrapeSwagger (Api Documentation)
-
Clone the repository:
git clone https://github.com/ahtishamhafeez/planzo.git cd planzo
-
Install dependencies:
bundle install
-
Set up the database:
rails db:create db:migrate db:seed
-
Start the server:
rails s
- POST /api/v1/users/auth – Authenticate users and receive a JWT token.
- GET /api/v1/users/users – List all users.
- GET /api/v1/users/users/:id – Retrieve a specific user.
- GET /api/v1/projects – List all projects.
- POST /api/v1/projects – Create a new project.
- GET /api/v1/projects/:id – Retrieve project details.
- GET /api/v1/projects/:user_id/assign – Assign project to user.
- GET /api/v1/tasks/ – List all tasks for a project.
- POST /api/v1/tasks/ – Create a task.
Run the test suite with:
rspec
- Fork the repository.
- Create a new branch (
feature-branch
). - Commit your changes.
- Push to your fork and submit a pull request.
For any inquiries, contact [email protected].