Organizr is a student project developed by Isabella Markskog and Sandra Wallén.
In short, it's a fullstack application where a user can plan projects and have other people join in on a project as collaborators. In this application a user can plan projects and have other people join in on a project as collaborators. The general idea is to provide the user with the means to add, store and maintain projects and on a single project you can add tasks related to the project.
We believe it's a well balanced application between frontend and backend in terms of functionality implemented.
Initially, we built and completed the Sign up and Sign in functionality. With that in place, we proceeded to build the content of the application which is restricted to registered users only. During the building process, we tested the functionalities, refactoring code when needed and discussed the current functionalitites/code and the upcoming work that needed to be done. Throughout the building process we also styled the components and at the end of it we went through the code base and evaluated consistency and did a general clean up of the code.
- Projects section; overview of projects and single project (GET req), add a new project (POST req), edit a project (PATCH req), add/remove collaborator (PATCH req), delete project (DELETE req)
- Tasks section; overview of tasks (GET req), add a new task (POST req), add a new comment to a task (PATCH req), edit a task (PATCH req), delete task (DELETE req)
- Profile section; overview of user info (GET req), edit profile (PATCH req), upload avatar image (PATCH req)
- Styling is mostly done using Styled components
- React
- Redux
- React Router
- Styled components
- Material.ui
- React icons
- Carousel (react-responsive-carousel)
- Using Express Router to refactor code
- Server.js; route for every endpoint
- authenticateUser.js; authorization function
- userController.js; all requests related to user collection
- projectsController.js; all requests related to projects collection
- tasksController.js; all requests related to tasks collection
- upload.js; uploading avatar images to database using Cloudinary
- Node.js
- Express.js
- MongoDB
- mongoose
- bcrypt
- Cloudinary
- express-list-endpoints
Displays all endpoints for this API using npm package express-list-endpoints. Base URL: https://final-project-isma-sawa.herokuapp.com
GET /
POST /signup
POST /signin
Restricted access (users only).
GET /sessions/:userID
- single userGET /sessions/users
- all usersDELETE /sessions/:userID
- delete userPATCH /sessions/:userID
- edit user
Restricted access (users only).
PATCH /sessions/:userID/avatar
- edit avatar image
Restricted access (users only).
GET /sessions/:userID/projects
- all projectsGET /sessions/projects/:projectID
- single projectPOST /sessions/:userID/projects
- add new projectDELETE /sessions/projects/:projectID
- delete single projectPATCH /sessions/projects/:projectID
- edit projectPATCH /sessions/projects/:projectID/collaborators
- add collaboratorsPATCH /sessions/projects/:projectID/collaborators/delete
- delete a collaborator
Restricted access (users only).
GET /sessions/projects/:projectID/tasks
- all tasksGET /sessions/projects/:projectID/tasks/:taskID
- single taskPOST /sessions/projects/:projectID/tasks
- add new taskDELETE /sessions/projects/:projectID/tasks/:taskID
- delete single taskPATCH /sessions/projects/:projectID/tasks/:taskID
- edit taskPATCH /sessions/projects/:projectID/tasks/:taskID/comments
- add commentPATCH /sessions/projects/:projectID/tasks/:taskID/complete
- toggle complete
To view our application Organizr live, please visit this link: https://organizr-final.netlify.app
Features/Functionalities we want to implement:
- Tasks; functionality for labels, due date, sorting and filtering options of task list, draggable task items
- Projects; functionality for due date, sorting and filtering options of projects, draggable project items
- User; functionality to delete user on frontend (endpoint ready in backend)
- Implement dark/light color theme
- Email notification (in backend) - upon sign up and possibility to subscribe to changes to different items
- Monthly/weekly/sprint overview