PromptChat is a feature-rich command-line chat application allowing users to interact seamlessly via the terminal. Users can register, manage servers, create roles, and communicate through channels with fine-grained permission controls.
/
|--- bin/
| |--- prompt_chat.dart (application entry point)
|--- lib/
| |--- cli/ (actual subsystem classes handling program logic)
| | |--- exceptions/ (all custom exceptions)
| |--- db/ (database helper functions)
| |--- enum/ (types and enums)
| |--- prompt_chat.dart (main API)
|--- test/
|---.env.example
|---.gitignore
|---README.md (this file!)
|---pubspec.yaml (dependencies go here)
|---pubspec.lock
- Dart: The programming language used for building PromptChat.
- MongoDB: For persisting user, server, and chat data.
- bcrypt: For password hashing and salting.
- Ensure you have the Dart SDK installed: Install Dart
- Install and run MongoDB. Here is the download link and instructions to do so on your local machine - Get MongoDB
- Create a
.env
file in the top-level of the project, following the format in the.env.example
- Clone the repository
git clone [email protected]:IMGIITRoorkee/prompt_chat.git cd prompt_chat
- Get dependencies
dart pub get
- Run the app
dart run
Here are some recommended resources to familiarize yourself with the tech stack, feel free to reach out to the maintainers for additional help if needed.
- The official Dart documentation is the best place to learn dart.
- Information on pubspecs and packages.
- Learn how async works in Dart.
-
Also, a quick explainer on the facade pattern which the class structure bears resemblance to.
Refer to the USAGE.md
file for documentation on how to use the app.
Before you start contributing, please look at the rules for Mergefest provided here
Also look at how to contribute here
- Code Style: Follow standard Dart practices and keep your code in line with the patterns and styles of the codebase.
- Readable Commits: Write meaningful commit messages that describe what was done.
- Test Your Code: Verify that your changes don’t break any existing functionality.
- Attach Proof of work: Please attach a video of the feature you have implemented.
- Join our discord server: https://discord.gg/aKaEbaVYKf
- Ping 2Y in the relevant channel
This project is licensed under the MIT License. See the LICENSE
file for details.