The project is organized into several directories, each serving a specific purpose. Here's an overview of the folder structure:
cmd/backend
: Main application entry point.internal/controllers
: Controllers handling business logic.internal/middleware
: Middleware for request processing.internal/models
: Data models for the backend.internal/routes
: Routing configuration.internal/services
: Business logic services.internal/utils
: Utility functions.internal/app.go
: Main application configuration.go.mod
,go.sum
: Go module files.
cmd/client-view
: Main application entry point.internal
: Internal application logic.public
: Static assets like HTML and CSS.public/index.html
: Main HTML file.public/styles.css
: Stylesheet.
go.mod
,go.sum
: Go module files.
cmd/engine-api
: Main application entry point.internal/controllers
: Controllers handling API logic.internal/models
: Data models for the API.internal/services
: Business logic services for the recommendation engine.internal/utils
: Utility functions.go.mod
,go.sum
: Go module files.
- Additional scripts for project-related tasks.
- Unit tests and test-related files.
- Specifies intentionally untracked files to ignore when using Git.
- This file, providing an overview of the project structure and usage instructions.
- Docker Compose configuration for containerized development.
- Makefile with common development tasks.
- Go module files for managing dependencies.
- Handle user authentication, manage movie and content data.
- Implement business logic in controllers, services, and configure routes in routes.
- Adjust the
app.go
file for main application configuration.
- Develop the frontend using HTML and CSS in the
public
directory. - Configure client-side logic in the
cmd/client-view/main.go
file.
- Focus on the recommendation engine logic in the
services
andcontrollers
directories. - Define API routes and models in the
routes
andmodels
directories.
- Use the
scripts
directory for additional project-related tasks.
- Write unit tests in the
tests
directory to ensure code quality.
- Utilize the
docker-compose.yml
file for containerized development and deployment.
- Leverage the
Makefile
for common development tasks.
Feel free to contribute to this project by opening issues, submitting pull requests, or suggesting improvements.