Project Roadmap and Progress Tracking - benobilom/fyp GitHub Wiki

Introduction: Welcome to the "Project Roadmap and Progress Tracking" page for the TravelPal application. This page is about keeping me on track as I work on this travel planning application. It's my guide to what's done, what's next, and how far I've come. I'll use this space to keep things organized, stay motivated, and ensure I'm making steady progress toward my project goals.

So Far:

I have created a simple SpringBoot API for the travel planner application (TravelPal) with a Client model and a database for the client model called client. It currently has Client, clientController, clientService, clientConfig, and ClientRepository classes/interface. The application connects the PostgreSQL database and manipulates it using CRUD operations that I have implemented.

Project Roadmap (complete = *) (comment = [...])

1. Expand Data Models: Consider what other data models (entities) you need for your TravelPal application. For example, you might need models for destinations, itineraries, activities, and more. Create the corresponding entity classes and repositories. *

2. API Endpoints and Controllers:

  • Define and implement API endpoints for the new data models. You'll need to create controllers for each model to handle CRUD operations. *

3. Service Layer:

  • Implement the service layer for each entity. The service layer is responsible for encapsulating the business logic, data validation, and interacting with the repositories. *

4. Database Relationships:

  • If your entities have relationships (e.g., a client is associated with one or more itineraries), define these relationships in your data models. Make sure you set up proper database associations, such as one-to-many or many-to-many. *

5. Validation and Error Handling:

  • Implement validation for incoming data and error handling mechanisms to provide meaningful error responses to clients. [partially complete]

6. Authentication and Authorization:

  • Start working on user registration and authentication. Spring Security is a common choice for handling these features.

7. Security:

  • Enhance the security of your application by implementing measures like input validation, protection against SQL injection, and secure handling of user credentials.

8. Testing:

  • Write unit tests for your controllers, services, and repositories to ensure that your API functions correctly.

9. Documentation:

  • Create API documentation using tools like Swagger or Spring RestDocs to provide clear documentation for API endpoints and how to use them.

10. Front-End Development:

  • Begin building the front end using React for the user interface. You can create user interfaces for registration, login, profile management, and other features.
  • Create a separate GitHub repository for the front end to manage changes effectively.

11. API Integration (Front-End):

  • As you work on the front-end, integrate your back-end API endpoints to make the front-end functional. This will allow you to test end-to-end interactions.

12. User Authentication in Front-End:

  • Implement user registration and login screens in your React front end. Use tokens (e.g., JWT) to secure communication between the front-end and back-end.

13. User Profile and Preferences:

  • Create screens for users to manage their profiles and preferences. This may include features like setting travel interests or updating contact information.