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.
π Overview
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.
π οΈ Tech Stack
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
π― Features
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.
π Learning Outcomes
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.