Greenlight is a comprehensive web application project that demonstrates clean and effective Go programming practices. It was designed as part of Let's Go Further, a book by Alex Edwards that focuses on building real-world applications using Go.
Greenlight is a learning-driven project aimed at developing a robust and scalable web application. This project integrates key concepts like user authentication, role-based access control, and the management of movies data, while adhering to Go's best practices.
- Backend: Go (Golang)
- Database: PostgreSQL
- Authentication: Secure password hashing and role-based access control with JWT
- Architecture: Modular and scalable design using layered architecture
- REST API: Exposing JSON-based endpoints for easy integration
- User Authentication: Secure user registration, login, and session management.
- Role-Based Access Control (RBAC): Different roles to manage access and permissions.
- CRUD Operations: Perform Create, Read, Update, and Delete operations on movie data.
- Validation: Strong input validation to ensure data integrity.
- Secure Practices: Built-in password hashing, data validation, and secure headers.
The Greenlight project is an excellent opportunity to:
- Gain hands-on experience with Go’s built-in web development tools.
- Learn how to handle HTTP requests, manage routing, and work with middleware.
- Understand how to structure large Go applications for scalability and maintainability.
- Work with PostgreSQL in Go to manage data persistence.
- Implement secure and scalable user authentication and authorization systems.
-
Clone the repository:
git clone https://github.com/your-username/greenlight.git
-
Install Go dependencies:
go mod tidy
-
Set up the PostgreSQL database
-
Run the application:
go run ./cmd/api