Categorygithub.com/rogerjeasy/go-letusconnect
repositorypackage
0.0.0-20250208024615-15575f107bda
Repository: https://github.com/rogerjeasy/go-letusconnect.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README


šŸ“‚ README.md

šŸš€ Master's Program Networking & Collaboration Platform - Backend

This repository contains the backend implementation for the Master's Program Networking & Collaboration Platform (letusconnect.com). It is a RESTful API built with Golang and the Fiber framework, providing endpoints for user authentication, networking, collaboration, and mentorship.


šŸ“‹ Table of Contents

  1. Project Setup
  2. Technologies Used
  3. Folder Structure
  4. Key Features
  5. Environment Variables
  6. Running the Server
  7. Database Setup
  8. API Documentation
  9. Contributing
  10. License

šŸ› ļø Project Setup

1. Clone the Repository

git clone https://github.com/rogerjeasy/go-letusconnect.git
cd go-letusconnect

2. Install Dependencies

go mod download

3. Create a .env File

Create a .env file in the root directory and add the following environment variables:

PORT=8080

SMTP_HOST=your-smtp-host
SMTP_PORT=your-smtp-port
SENDER_EMAIL=your-email
SENDER_NAME=your-name
SENDER_PASS=your-email-password
FIREBASE_API_KEY=your-firebase-api-key
ENV_SERVICE_ACCOUNT_KEY=local
JSON_SERVICE_ACCOUNT_PATH=service-account.json
PUSHER_APP_ID=your-pusher-app-id
PUSHER_KEY=your-pusher-key
PUSHER_SECRET=your-pusher-secret
PUSHER_CLUSTER=your-pusher-cluster

4. Running the Server

go run main.go

šŸ’» Technologies Used

  • Golang - A statically typed, compiled programming language designed at Google.
  • Fiber - An Express.js inspired web framework built on top of Fasthttp.
  • Firestore - A flexible, scalable database for mobile, web, and server development from Firebase and Google Cloud.
  • Firebase Authentication - A service that can authenticate users using only client-side code.
  • Pusher - A real-time messaging service that allows you to add real-time features to your applications.

šŸ“ Folder Structure


go-letusconnect
ā”œā”€ā”€ config                  # Configuration files
ā”œā”€ā”€ handlers                # Request handlers
ā”œā”€ā”€ middlewares             # Middleware functions
ā”œā”€ā”€ models                  # Data models
ā”œā”€ā”€ routes                  # API route definitions
ā”œā”€ā”€ services                # application logic and services
ā”œā”€ā”€ utils                   # Utility functions
ā”œā”€ā”€ .env                    # Environment variables
ā”œā”€ā”€ go.mod                  # Go module file
ā”œā”€ā”€ go.sum                  # Go sum file
ā”œā”€ā”€ main.go                 # Entry point of the application
└── README.md               # README file


šŸ”‘ Key Features

  • User Authentication - Register, login, and logout users.
  • Profile Management - Update user profile, change password, and reset password.
  • Networking Tools - Connect with other users, view connections, and send connection requests.
  • Collaboration Tools - Create, view, and join groups, post messages, and comment on posts.
  • Mentorship Platform - Apply to be a mentor or mentee, view mentorship requests, and accept or reject requests.
  • Real-time messaging - Receive real-time notifications for new connection requests, group invitations, and mentorship requests.
  • Email Notifications - Send email notifications for new connection requests, group invitations, and mentorship requests.
  • Event Management - Create, view, and join events, and view event details.
  • Job Board and Career Resources - Post job listings, view job details, and apply for jobs.

🌐 Environment Variables

  • PORT - The port number on which the server will run.
  • SMTP_HOST - The SMTP host for sending email notifications.
  • SMTP_PORT - The SMTP port for sending email notifications.
  • SENDER_EMAIL - The email address of the sender for email notifications.
  • SENDER_NAME - The name of the sender for email notifications.
  • SENDER_PASS - The password of the sender's email address for email notifications.
  • FIREBASE_API_KEY - The API key for Firebase Authentication.
  • ENV_SERVICE_ACCOUNT_KEY - The environment variable for the service account key.
  • JSON_SERVICE_ACCOUNT_PATH - The path to the service account key file.
  • PUSHER_APP_ID - The Pusher app ID.
  • PUSHER_KEY - The Pusher key.
  • PUSHER_SECRET - The Pusher secret.
  • PUSHER_CLUSTER - The Pusher cluster.

šŸš€ Running the Server

To run the server, execute the following command:

go run main.go

The server will start on the port specified in the .env file.


šŸ“¦ Database Setup

The application uses Firestore as the database. You can set up Firestore by following the steps below:

  1. Go to the Firebase Console.
  2. Create a new project.
  3. Go to the Firestore section and create a new Firestore database.
  4. Add a new collection called users.
  5. Add a new collection called connections.
  6. Add a new collection called groups.

šŸ“– API Documentation

API documentation is available via Postman collection or Swagger (if implemented).


šŸ¤ Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/awesome-feature)
  3. Commit your Changes (git commit -m 'Add some awesome feature')
  4. Open a Pull Request

šŸ“œ License

Distributed under the MIT License. See LICENSE for more information.