“Recruit App” Team:
- Kaleab Tekle Woldemariam, [email protected]
- Ling Yui Qian, [email protected]
- Thirza Ahmad, [email protected]
- Karthik Sudheer, [email protected]
Date: August 6, 2024
User registration and login (both applicants and employers). Profile management (update personal information, resumes, and company details).
Employers can create, update, and delete job posts. Job posts should include details like job title, description, requirements, location, application deadline and salary.
Applicants can create, update, and delete resumes. Resumes should include personal information, skills, education, work experience, and references.
Automated job matching based on resume skills and job requirements. Notifications for new matches for both applicants and employers.
Applicants can search for jobs by title, location, company, etc. Employers can search for applicants by skills, education, experience, etc.
Applicants can apply for jobs. Employers can manage applications (view, shortlist, reject).
Manage users, job posts, and resumes. Site-wide settings and analytics.
#Functionalities
Vue: Create login and registration components. Django: Implement authentication backend using Django's built-in auth system.
Vue: Create components for job post creation, updating, and deletion. Django: Create models for job posts and views to handle CRUD operations.
Vue: Create components for resume creation, updating, and deletion. Django: Create models for resumes and views to handle CRUD operations.
Vue: Create components to display matched jobs and applicants. Django: Implement logic to match jobs and resumes based on skills and requirements.
Vue: Create search and filter components for jobs and applicants. Django: Implement search functionality in views and optimize database queries.
Vue: Create components for job applications (apply, view status). Django: Implement application submission and management in views.
Vue: Create admin dashboard components. Django: Use Django admin or create custom views for managing site content.
Use Vue 3 Composition API for state management. Use Vue Router for navigation. Use Pinia for centralized state management. Use Apollo Client for making HTTP or GraphQL requests to the backend.
Use Graphene-Django for creating API endpoints. Define models for Users, JobPosts, Resumes, and Applications. Create serializers for data validation and transformation. Implement views for handling API requests.
Use PostgreSQL for storing data. Define relationships between models (e.g., Users and JobPosts, Users and Resumes).
Use Docker for containerization. Use Nginx as a reverse proxy. Deploy on cloud platforms like TiDB serverless.
Initialize Vue and Django projects. Set up Docker for local development.
Implement registration and login views in Django. Create corresponding components in Vue. Use JWT for authentication and authorization.
Define JobPost and Resume models in Django. Create CRUD views for managing job posts and resumes. Implement API endpoints using Django REST Framework or GraphQL.
Create components for job posts, resumes, search, and applications. Implement state management using Vuex or Pinia.
Implement job matching logic in Django. Create endpoints to fetch matched jobs and applicants. Display matched results in Vue components.
Use Django admin for initial management. Create custom admin views if needed.
Write unit and integration tests for both frontend and backend. Set up CI/CD pipeline for automated testing and deployment. Deploy the application to a production server.
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Make your changes and commit them (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature-branch
). - Open a Pull Request.
This project is licensed under the MIT License.
For any inquiries, please contact Kaleab Tekle Woldemariam at [email protected].