This project demonstrates authentication in Vue.js using Django REST Framework (DRF). Key concepts include Vue's watch function, Vue Router, and DRF setup.
Both the frontend and backend are publicly available for anyone to use as a boilerplate for their own projects.
For scalable and maintainable Vue applications, the Atomic Design methodology organizes components into a hierarchy:
- Atoms: Basic UI elements (e.g., buttons, icons)
- Molecules: Groups of atoms (e.g., search bars)
- Organisms: Complex components (e.g., navigation bars)
- Templates: Layouts displaying component structure
- Pages: Actual UI screens with real data
This structure supports smooth transitions from simple to complex components.
/src
├── components
│ ├── atoms
│ │ ├── AtomButton.vue
│ │ └── AtomIcon.vue
│ ├── molecules
│ │ ├── MoleculeSearchInput.vue
│ │ └── MoleculePokemonThumbnail.vue
│ ├── organisms
│ │ ├── OrganismPokemonCard.vue
│ │ └── OrganismHeader.vue
│ ├── templates
│ │ ├── TemplatePokemonList.vue
│ │ └── TemplatePokemonDetail.vue
├── pages
│ ├── PageHome.vue
│ └── PagePokemonDetail.vue
├── composables
│ └── usePokemon.js
├── utils
│ └── validators.js
├── layout
│ ├── LayoutDefault.vue
│ └── LayoutAdmin.vue
├── plugins
│ └── translate.js
├── router
│ └── index.js
├── store
│ └── index.js
├── assets
│ ├── images
│ └── styles
├── tests
│ └── ...
├── App.vue
└── main.js
(Add Django backend structure details here as needed)
Project Management
- Users can upload projects:
project_idproject_titleproject_statusproject_detailproject_deadline(status updates based on deadline)user_idworkspace_id
Workspace Collaboration
- Users can create or join workspaces:
workspace_idworkspace_nameworkspace_owner(creator)workspace_members(list of users with roles)
For further details, see the documentation or source code.