A full-stack CRM (Customer Relationship Management) application built with Django and Vue.js.
- Django 4.2.7 - Python web framework
- Django REST Framework - REST API toolkit
- SQLite - Database
- Token Authentication - Secure API authentication
- Vue 3 - Progressive JavaScript framework
- Vuetify 3 - Material Design component library
- Vue Router - Client-side routing
- Axios - HTTP client
- Vite - Build tool and dev server
- User authentication (login/logout)
- Dashboard with analytics and statistics
- Contact management (CRUD operations)
- Company management (CRUD operations)
- Deal tracking with pipeline stages
- Task management with priorities
- Beautiful navy blue themed UI
- Responsive design with Material Design components
interview/
├── backend/ # Django backend
│ ├── config/ # Django settings
│ ├── tasks/ # CRM app (models, views, serializers)
│ ├── manage.py
│ └── db.sqlite3
│
└── frontend/ # Vue.js frontend
├── src/
│ ├── assets/ # CSS and static files
│ ├── components/ # Vue components
│ ├── plugins/ # Vuetify configuration
│ ├── router/ # Vue Router setup
│ ├── services/ # API service layer
│ ├── views/ # Page components
│ ├── App.vue # Root component
│ └── main.js # Entry point
├── index.html
├── package.json
└── vite.config.js
- Python 3.8+
- Node.js 18+
- npm or yarn
- Log in with the demo credentials:
- Username: demo
- Password: demo123
- Explore the CRM features:
- View dashboard statistics
- Manage contacts, companies, deals, and tasks
- Create, edit, and delete records
GET /api/dashboard/stats/- Get dashboard statistics
GET /api/companies/- List all companiesPOST /api/companies/- Create a new companyGET /api/companies/:id/- Get company detailsPUT /api/companies/:id/- Update a companyDELETE /api/companies/:id/- Delete a company
GET /api/contacts/- List all contactsPOST /api/contacts/- Create a new contactGET /api/contacts/:id/- Get contact detailsPUT /api/contacts/:id/- Update a contactDELETE /api/contacts/:id/- Delete a contact
GET /api/deals/- List all dealsPOST /api/deals/- Create a new dealGET /api/deals/:id/- Get deal detailsPUT /api/deals/:id/- Update a dealDELETE /api/deals/:id/- Delete a deal
GET /api/tasks/- List all tasksPOST /api/tasks/- Create a new taskGET /api/tasks/:id/- Get task detailsPUT /api/tasks/:id/- Update a taskDELETE /api/tasks/:id/- Delete a task
The application uses a professional navy blue color scheme:
- Primary: #001f3f (Navy Blue)
- Secondary: #0074D9 (Lighter Blue)
- Accent: #39CCCC (Teal)
- Background: #f5f7fa (Light Gray)
- name, industry, website, phone, address
- created_at, updated_at
- created_by (User)
- first_name, last_name, email, phone
- position, company (FK)
- created_at, updated_at
- created_by (User)
- title, amount, stage
- company (FK), expected_close_date
- created_at, updated_at
- assigned_to (User)
- title, description, status, priority
- due_date, contact (FK), deal (FK)
- created_at, updated_at
- assigned_to (User)
- No TypeScript - Pure JavaScript throughout
- Token-based authentication with Django authtoken
- CORS configured for local development
- Vuetify 3 Material Design components
- RESTful API architecture
- Vue Router with navigation guards
This project is created for interview purposes.