Coder Social home page Coder Social logo

kelasan-api's Introduction

๐Ÿซ 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

kelasan-api's People

Contributors

rgxcp avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.