Skip to content

rgxcp/kelasan-api

Repository files navigation

🏫 Kelasan API

API for managing class homeworks and notes.

Status

MAINTAINING

Requirements

  1. PHP
  2. Composer
  3. Laravel
  4. MySQL
  5. XAMPP
  6. Postman

How to Use

  1. Clone this repository to your desired location.
  2. Copy .env.example file to .env.
  3. Generate application key php artisan key:generate.
  4. Generate storage symbolic link php artisan storage:link.
  5. Create database kelasan_sandbox and configure it on .env file.
  6. Run migration php artisan migrate.
  7. Run seeder php artisan db:seed.
  8. Run server bash server.sh --start.
  9. Fire-up Postman.
  10. Do-what-you-want-with-it!

Endpoints

GET

URL Description
/api/v1/classrooms/{classroom} Show classroom detail
/api/v1/classrooms/{classroom}/invitation-code Show classroom invitation code
/api/v1/classrooms/{classroom}/assignments Show classroom assignments
/api/v1/classrooms/{classroom}/notes Show classroom notes
/api/v1/classrooms/{classroom}/subjects Show classroom subjects
/api/v1/classrooms/{classroom}/users Show classroom users
/api/v1/classrooms/{classroom}/assignments/{assignment} Show assignment detail
/api/v1/classrooms/{classroom}/assignments/{assignment}/statuses Show assignment statuses
/api/v1/classrooms/{classroom}/assignments/{assignment}/timelines Show assignment timelines
/api/v1/classrooms/{classroom}/notes/{note} Show note detail
/api/v1/classrooms/{classroom}/notes/{note}/timelines Show note timelines
/api/v1/classrooms/{classroom}/subjects/{subject} Show subject detail
/api/v1/classrooms/{classroom}/subjects/{subject}/assignments Show subject assignments
/api/v1/users/self Show self detail
/api/v1/users/self/assignments Show self assignments
/api/v1/users/self/classrooms Show self classrooms
/api/v1/users/self/notes Show self notes
/api/v1/users/self/subjects Show self subjects

POST

URL Description
/api/v1/classrooms Create classroom
/api/v1/classrooms/join Join classroom
/api/v1/classrooms/{classroom}/assignments Create assignment
/api/v1/classrooms/{classroom}/notes Create note
/api/v1/classrooms/{classroom}/subjects Create subject
/api/v1/users/sign-up Sign up
/api/v1/users/sign-in Sign in

PUT

URL Description
/api/v1/classrooms/{classroom} Update classroom
/api/v1/classrooms/{classroom}/assignments/{assignment} Update assignment
/api/v1/classrooms/{classroom}/assignments/{assignment}/change-status Update assignment status
/api/v1/classrooms/{classroom}/notes/{note} Update note
/api/v1/classrooms/{classroom}/subjects/{subject} Update subject
/api/v1/users/self Update profile
/api/v1/users/self/change-password Update password

DELETE

URL Description
/api/v1/classrooms/{classroom} Delete classroom
/api/v1/classrooms/{classroom}/assignments/{assignment} Delete assignment
/api/v1/classrooms/{classroom}/notes/{note} Delete note
/api/v1/classrooms/{classroom}/subjects/{subject} Delete subject
/api/v1/users/self/sign-out Sign out current device
/api/v1/users/self/sign-out-all Sign out all devices

TODOs

Total Tasks : 324

Completed Tasks : 299

Progress : 92.28%

  • Configure app .env
  • Change app timezone & locale to Indonesian
  • Install auth package (Sanctum)
  • Log SQL queries
  • Configure $dontFlash attributes on exception handler & $except attributes on TrimStrings middleware
  • Handle AuthenticationException class
  • Handle NotFoundHttpException class
  • Delete user related boilerplate
    • User model
    • User factory
    • users migration
    • password_resets migration
    • failed_jobs migration
  • Create base migrations
    • users
    • classrooms
    • classroom_user
    • subjects
    • assignments
    • assignment_images
    • assignment_statuses
    • assignment_timelines
    • notes
    • note_images
    • note_timelines
  • Create base models
    • Assignment
    • AssignmentImage
    • AssignmentStatus
    • AssignmentTimeline
    • Classroom
    • ClassroomUser
    • Note
    • NoteImage
    • NoteTimeline
    • Subject
    • User
  • Create base controllers
    • AssignmentController
    • AssignmentStatusController
    • ClassroomController
    • NoteController
    • SubjectController
    • UserController
  • Create base factories
    • AssignmentFactory
    • AssignmentImageFactory
    • AssignmentStatusFactory
    • AssignmentTimelineFactory
    • ClassroomFactory
    • ClassroomUserFactory
    • NoteFactory
    • NoteImageFactory
    • NoteTimelineFactory
    • SubjectFactory
    • UserFactory
  • Create base seeders
    • AssignmentImageSeeder
    • AssignmentSeeder
    • AssignmentStatusSeeder
    • AssignmentTimelineSeeder
    • ClassroomSeeder
    • ClassroomUserSeeder
    • NoteImageSeeder
    • NoteSeeder
    • NoteTimelineSeeder
    • SubjectSeeder
    • UserSeeder
  • Create endpoints
    • GET Show classroom detail
    • GET Show classroom invitation code
    • GET Show classroom assignments
    • GET Show classroom notes
    • GET Show classroom subjects
    • GET Show classroom users
    • GET Show assignment detail
    • GET Show assignment statuses
    • GET Show assignment timelines
    • GET Show note detail
    • GET Show note timelines
    • GET Show subject detail
    • GET Show subject assignments
    • GET Show self detail
    • GET Show self assignments
    • GET Show self classrooms
    • GET Show self notes
    • GET Show self subjects
    • POST Create classroom
    • POST Join classroom
    • POST Create assignment
    • POST Create note
    • POST Create subject
    • POST Sign up
    • POST Sign in
    • PUT Update classroom
    • PUT Update assignment
    • PUT Update assignment status
    • PUT Update note
    • PUT Update subject
    • PUT Update profile
    • PUT Update password
    • DELETE Delete classroom
    • DELETE Delete assignment
    • DELETE Delete note
    • DELETE Delete subject
    • DELETE Sign out current device
    • DELETE Sign out all devices
  • Create base middleware
    • BelongToClass
    • ClassroomLeader
    • ClassroomUser
    • JSONHeader
  • Register middleware on kernel
  • Assign middleware on route
  • Create base requests
    • JoinClassroomRequest
    • SignInRequest
    • SignUpRequest
    • StoreAssignmentRequest
    • StoreClassroomRequest
    • StoreNoteRequest
    • StoreSubjectRequest
    • UpdateAssignmentRequest
    • UpdateAssignmentStatusRequest
    • UpdateClassroomRequest
    • UpdateNoteRequest
    • UpdatePasswordRequest
    • UpdateProfileRequest
    • UpdateSubjectRequest
  • Create traits
    • FailedFormValidation
    • InvitationCode
    • SerializeDate
  • Fill base migrations
    • users
    • classrooms
    • classroom_user
    • subjects
    • assignments
    • assignment_images
    • assignment_statuses
    • assignment_timelines
    • notes
    • note_images
    • note_timelines
  • Fill base middleware
    • BelongToClass
    • ClassroomLeader
    • ClassroomUser
    • JSONHeader
  • Fill base requests
    • JoinClassroomRequest
    • SignInRequest
    • SignUpRequest
    • StoreAssignmentRequest
    • StoreClassroomRequest
    • StoreNoteRequest
    • StoreSubjectRequest
    • UpdateAssignmentRequest
    • UpdateAssignmentStatusRequest
    • UpdateClassroomRequest
    • UpdateNoteRequest
    • UpdatePasswordRequest
    • UpdateProfileRequest
    • UpdateSubjectRequest
  • Fill base models
    • Assignment
      • SoftDeletes trait
      • $fillable attributes
      • $hidden attributes
      • Events
      • Relationships
      • Accessors
      • Mutator
    • AssignmentImage
      • SoftDeletes trait
      • $fillable attributes
      • $hidden attributes
      • Events
      • Relationships
      • Accessors
      • Mutator
    • AssignmentStatus
      • SoftDeletes trait
      • $fillable attributes
      • $hidden attributes
      • Events
      • Relationships
      • Accessors
      • Mutator
    • AssignmentTimeline
      • SoftDeletes trait
      • $fillable attributes
      • $hidden attributes
      • Events
      • Relationships
      • Accessors
      • Mutator
    • Classroom
      • SoftDeletes trait
      • $fillable attributes
      • $hidden attributes
      • Events
      • Relationships
      • Accessors
      • Mutator
    • ClassroomUser
      • SoftDeletes trait
      • $fillable attributes
      • $hidden attributes
      • Events
      • Relationships
      • Accessors
      • Mutator
    • Note
      • SoftDeletes trait
      • $fillable attributes
      • $hidden attributes
      • Events
      • Relationships
      • Accessors
      • Mutator
    • NoteImage
      • SoftDeletes trait
      • $fillable attributes
      • $hidden attributes
      • Events
      • Relationships
      • Accessors
      • Mutator
    • NoteTimeline
      • SoftDeletes trait
      • $fillable attributes
      • $hidden attributes
      • Events
      • Relationships
      • Accessors
      • Mutator
    • Subject
      • SoftDeletes trait
      • $fillable attributes
      • $hidden attributes
      • Events
      • Relationships
      • Accessors
      • Mutator
    • User
      • SoftDeletes trait
      • $fillable attributes
      • $hidden attributes
      • Events
      • Relationships
      • Accessors
      • Mutator
  • Fill base controllers
    • AssignmentController
      • show()
      • statuses()
      • timelines()
      • store()
      • update()
      • destroy()
    • AssignmentStatusController
      • __invoke()
    • ClassroomController
      • show()
      • invitationCode()
      • assignments()
      • notes()
      • subjects()
      • users()
      • store()
      • join()
      • update()
      • destroy()
    • NoteController
      • show()
      • timelines()
      • store()
      • update()
      • destroy()
    • SubjectController
      • show()
      • assignments()
      • store()
      • update()
      • destroy()
    • UserController
      • show()
      • assignments()
      • classrooms()
      • notes()
      • subjects()
      • signUp()
      • signIn()
      • update()
      • changePassword()
      • signOut()
      • signOutAll()
  • Fill base factories
    • AssignmentFactory
    • AssignmentImageFactory
    • AssignmentStatusFactory
    • AssignmentTimelineFactory
    • ClassroomFactory
    • ClassroomUserFactory
    • NoteFactory
    • NoteImageFactory
    • NoteTimelineFactory
    • SubjectFactory
    • UserFactory
  • Fill base seeders
    • AssignmentImageSeeder
    • AssignmentSeeder
    • AssignmentStatusSeeder
    • AssignmentTimelineSeeder
    • ClassroomSeeder
    • ClassroomUserSeeder
    • NoteImageSeeder
    • NoteSeeder
    • NoteTimelineSeeder
    • SubjectSeeder
    • UserSeeder
  • Translate English locale to Indonesian

About

🏫 [MAINTAINING] API for managing class homeworks and notes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published