# README
Lunch & Learn App
š Brief
The Lunch & Learn App is designed to facilitate informal learning sessions within organizations. It allows team members to organize, participate in, and track lunch & learn events, fostering a culture of continuous learning.
š ļø Backend Tech Stack
- Languaje: Go
- Framework: Gin
- Database: Firebase Firestore
- API: RESTful services using Gin
- Version Control: Git
š Project Structure
/
ā
āāā api/
ā āāā config/
ā āāā dtos/
ā āāā events/
ā āāā exception_handlers/
ā āāā routers/
ā āāā v1/
ā āāā v2/
ā
āāā core/
ā āāā src/
ā ā āāā exceptions/
ā ā ā āāā business/
ā ā ā āāā repository/
ā ā āāā orchestrators/
ā ā āāā repositories/
ā ā āāā use_cases/
ā ā āāā models/
ā āāā tests/
ā
āāā adapters/
ā āāā src/
ā ā āāā repositories/
ā āāā tests/
ā āāā use_cases/
āāā factories
ā āāā config/
ā āāā orchestrators/
ā āāā repositories/
ā āāā use_cases/
āāā infrastructure/
Based on the IOET Backend Standard
š Endpoints
Health Check
- GET
/v1/health_check/
- To ping the API and verify the status.
User
- GET
/v1/user/
- To get all users. - GET
/v1/user/:id
- To get a user by id. - POST
/v1/user/
- To create a user. - PUT
/v1/user/house
- To modify the user's house. - PUT
/v1/user/points
- To modify the user's points.
House
- GET
/v1/house/
- To get all houses. - GET
/v1/house/:id
- To get a house by id. - POST
/v1/house/
- To create a house.
Lunch n Learn
- GET
/v1/lunch_n_learn/
- To get all lunch n learns. - GET
/v1/lunch_n_learn/:id
- To get a lunch n learn by id. - POST
/v1/lunch_n_learn/
- To create a lunch n learn. - PUT
/v1/lunch_n_learn/
- To update a lunch n learn info. - PUT
/v1/lunch_n_learn/assistant
- To add an assistant to a lunch n learn. - PUT
/v1/lunch_n_learn/presenter
- To add an presenter to a lunch n learn.
š ļø Setup and Installation
- Clone the repository:
git clone https://github.com/ioet/ioet-lunch-n-learn-backend.git
cd ioet-lunch-n-learn-backend
- Install Go dependencies:
go mod download
- Run the server:
go run main.go
š”ļø Security
The internal IOET Auth Service is used for authentication and authorization.
IMPORTANT: API routes are protected with middleware to ensure secure access.
š¤ How to Contribute
- Fork the repository.
- Create a new feature branch (git checkout -b feature/YourFeatureName).
- Commit your changes (git commit -m 'Add some feature').
- Push to the branch (git push origin feature/YourFeatureName).
- Open a Pull Request.