This is the backend server for the DisTrack Discord bot and VSCode extension integration. It handles and stores coding session data from the VSCode extension and provides an API for the Discord bot to retrieve and display this data.
The DisTrack Endpoint Server collects coding session data from the DisTrack VSCode extension, including time spent coding, languages used, and Discord user IDs. This data is then accessible to the DisTrack Discord bot for generating user profiles and achievements.
- Store Coding Session Data: Records coding session duration, user language statistics, and last session date.
- User Management: Links Discord user IDs with coding session data.
- Achievement Tracking: Updates user achievements when coding milestones are reached.
- Clone the Repository:
git clone https://github.com/yourusername/DisTrack-Endpoint.git
- Install Dependencies:
cd DisTrack-Endpoint npm install
-
Set Environment Variables:
- Create a
.env
file in the root directory with the following variables:PORT=3000 # or any other port you'd like the server to run on MONGODB_URI=your_mongodb_connection_uri
- Ensure the IP address of your server is whitelisted on MongoDB Atlas if using a cloud database.
- Create a
-
MongoDB Setup:
- Make sure MongoDB is installed and running.
- Create a database for DisTrack (if not already done in the bot setup).
-
Description: Stores coding session data from the VSCode extension.
-
Body Parameters:
userId
(string, required): The Discord user ID.duration
(number, required): The coding session duration in seconds.sessionDate
(string, required): The date of the coding session in ISO format.languages
(object, optional): An object where keys are language names and values are time spent (in seconds) coding in each language.
-
Example Request:
{ "userId": "123456789012345678", "duration": 3600, "sessionDate": "2024-11-10T18:05:20.630Z", "languages": { "javascript": 1800, "html": 1200, "css": 600 } }
-
Description: Links a Discord user ID to a coding session profile if not already present.
-
Body Parameters:
userId
(string, required): The Discord user ID to be linked.
-
Example Request:
{ "userId": "123456789012345678" }
-
Start the Server:
- Run the following command to start the server:
node server.js
- Run the following command to start the server:
-
Testing with Postman:
- Use Postman or a similar tool to send POST requests to test the
/coding-session
and/link
endpoints.
- Use Postman or a similar tool to send POST requests to test the
- Fork the repository.
- Create a new branch:
git checkout -b feature-branch
- Commit changes:
git commit -m "Add a new feature"
- Push to the branch:
git push origin feature-branch
- Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for more details.
This `README.md` gives a clear overview of the server's purpose, setup, configuration, API details, and usage, helping anyone understand how to work with and contribute to the endpoint server. Let me know if you'd like any further customizations!