Resources

This section details the main features and resources available in the Nine Line application. Each resource is designed to provide a robust, scalable, and secure experience for both end-users and admin


1. User Management

  • User Registration: Allows new users to create an account with name, email, and password.

  • Authentication: Secure login using JWT (JSON Web Tokens) for session management.

  • User Roles: Role-Based Access Control (RBAC) with roles such as USER, MANAGER, and ADMIN.

  • Profile Management: Users can update their personal information and avatar.

  • Password Management: Secure password storage and update mechanisms.


2. Appointments

  • Create Appointment: Users can schedule appointments by selecting a space, date, and time.

  • List Appointments: View all appointments, filter by user or space, and paginate results.

  • Update Appointment: Modify appointment details (date, time, space) according to user role and business rules.

  • Delete/Cancel Appointment: Users can cancel their own appointments; admins/managers can delete any appointment.

  • Approve/Reject Appointment: Managers and admins can approve or reject pending appointments.

  • Status Tracking: Appointments have statuses such as PENDING, CONFIRMED, CANCELLED, and REJECTED.


3. Spaces

  • Create Space: Admins or managers can register new spaces with details, photos, rules, and amenities.

  • List Spaces: View all available spaces, with filtering and pagination.

  • Update Space: Edit space information, including title, description, rules, and amenities.

  • Delete Space: Remove spaces from the system.


4. Ratings

  • Create Rating: Users can rate spaces after using them, providing a score and comments.

  • List Ratings: View ratings by user or by space.

  • Update Rating: Edit previously submitted ratings.

  • Delete Rating: Remove a rating from the system.


5. RBAC (Role-Based Access Control)

  • Role Assignment: Assign or revoke roles to users.

  • Permission Management: Each role has a set of permissions that control access to resources and actions.

  • User Permissions: Query and audit user permissions for transparency and security.


6. Authentication & Security

  • JWT Authentication: Stateless authentication for all protected routes.

  • Refresh Tokens: Secure refresh token flow for session renewal.

  • Token Blacklisting: Logout and token invalidation for enhanced security.

  • Environment Variable Validation: All sensitive configuration is validated at startup.


7. Caching & Performance

  • Redis Integration: Caching for user and appointment data to improve performance.

  • Cache Invalidation: Automatic cache clearing on data changes to ensure consistency.


8. API Documentation

  • Swagger/OpenAPI: Comprehensive API documentation for all endpoints, including request/response examples and authentication requirements.

  • Markdown Docs: Human-readable documentation for quick reference.


9. Docker & DevOps

  • Dockerized Services: All components (API, database, Redis) run in isolated containers.

  • Docker Compose: Easy orchestration of multi-service environments for development and production.

  • Automated Migrations & Seeding: Database migrations and initial data seeding run automatically on startup.


10. Testing

  • Unit & Integration Tests: Coverage for core business logic, repositories, and controllers.

  • In-Memory Repositories: Fast, isolated tests without external dependencies.


Last updated