- Create your environment with venv
- Enter in the environment and activate it with
- Clone the repository
$ git clone https://github.com/AntonyZ89/django-nuxt-poc
- Install requirements
$ cd backend
$ pip install -r requirements.txt
- Run server
$ python manage.py runserver
- Install dependencies
$ cd frontend
$ bun install
- Copy
.env.local.example
$ cp .env.local.example .env.local
- Run server
DISCIPLINE
Field |
Description |
id |
|
user_id |
teacher's id |
name |
|
workload |
|
USER
Field |
Description |
name |
|
email |
(Can be the same if the "user type" is different) |
password |
|
birthday |
(Must be of legal age) |
created_at |
|
updated_at |
|
role |
TEACHER, STUDENT, COORDINATOR |
DISCIPLINE_STUDENT
Field |
Description |
discipline_id |
|
user_id |
student's id |
Role |
Permissions |
TEACHER |
List disciplines, Add notes, View notes |
COORDINATOR |
CRUD discipline, CRUD user, Add professor, Add students |
STUDENT |
List disciplines, View notes |
- Login
- CRUD disciplines
- CRUD users
- Libraries:
- Shadcn Vue for components
- Tailwind
- TypeScript
- Nuxt (framework)
- Pinia (state management)
- Vee-validate (form validation)
- Zod (validation management)
- Nuxt-i18n
- English
- Spanish
- Portuguese
- Upon login, the user selects their role:
Teacher
, Coordinator
, or Student
, and is then redirected to the corresponding frontend.
- Items on the screen are hidden based on the user's role.
- If attempting to access a route without logging in, the user will be redirected to the login screen.
- If attempting to access a route without permission, the user will be redirected to the home screen.
- All CRUD operations using GenericViewSet/ModelViewSet
- CRUD disciplines
- CRUD users
- CRUD discipline-students
- Models
- User
- Subtypes (proxy)
- Student
- Teacher
- Coordinator
- Discipline
- DisciplineStudent
- Serializers
- Login
- Discipline
- DisciplineStudent
- Entity
- User
- Student
- Teacher
- Coordinator
- Response
- Unit tests
- Models and serializers
- Using fixtures
- Token Auth
- Documentation (automatic)