HACKTOBERFEST 2022 - 2024
DentClack is a medical web application that makes booking dental appointments easier and quicker from the comfort of your home.
⭐ Before You Start: Like and Star the Project!
If you find the DentClack project interesting or helpful, please consider liking and starring the repository before contributing. This small action helps us gain visibility and motivates the community to keep growing!
Simply click the Star button at the top right corner of the DentClack GitHub repo ⭐!
Table of Contents
- Project Overview
- Tech Stack
- Teams and Responsibilities
- How To Get Started
- Branching Strategy
- Contribution Rules
- How To Avoid Conflicts
- FAQs
- Author Info
- Coding Guidelines
- Deployment
- Contributing
- Contact
- Project Structure and Detailed Methodology
Project Overview
DentClack is a medical web application designed to simplify the process of booking dental appointments. It provides a seamless user experience, allowing patients to book dental services online, without needing to call a clinic or physically visit.
This project is a great opportunity for beginners to contribute to open-source and is open for contributions as part of Hacktoberfest 2022-2024.
Goals:
- Easy-to-use interface for booking dental appointments.
- Responsive design that works on all devices.
- Secure authentication and appointment management.
- Beginner-friendly for Hacktoberfest contributions.
Happy Coding 💙 :) !
Tech Stack
Framework and Tools:
- Next.js: React-based framework for server-side rendering and static website generation.
- Node.js: Backend runtime environment for handling server logic.
Languages:
Libraries:
- Swiper.js: For interactive carousels and sliders.
- Chart.js: For graphical representations of data.
- Material Icons: For adding icons to the application.
Styling:
- Tailwind CSS: Utility-first CSS framework for fast UI development.
- Next Font: For custom font management.
- Next Theme: For managing theming and dark mode.
Version Control:
- Git and GitHub: For tracking changes and collaborating.
DevOps:
- Docker: Containerizing the application for ease of deployment.
- GitHub Actions: For continuous integration and deployment.
- AWS: Hosting the production environment.
Back To The Top
Teams and Responsibilities
The project is divided into multiple teams to ensure smooth progress. You can join any of these based on your interest and expertise:
Team 1: Frontend Development
- Build the user interface using React and Next.js components.
- Implement responsive design using Tailwind CSS.
- Ensure accessibility and cross-browser compatibility.
- Manage state using the Context API or Redux.
Team 2: Backend Development
- Develop API routes using Node.js and Express.
- Integrate external APIs and handle business logic.
- Manage database connections with MongoDB and Mongoose.
- Secure the app using OAuth and JWT for authentication.
Team 3: DevOps and Deployment
- Containerize the application using Docker.
- Set up continuous integration and deployment pipelines using GitHub Actions.
- Manage cloud environments and production deployment on AWS (EC2, S3, etc.).
Team 4: Quality Assurance and Testing
- Write and maintain tests using Jest and Cypress.
- Perform code reviews and ensure code quality.
- Conduct user acceptance testing (UAT) and bug tracking.
Back To The Top
Getting Started
Prerequisites
To get started with DentClack, make sure you have the following installed on your system:
- Node.js (version 14 or higher)
- npm or yarn (for managing packages)
- Docker (for running the application in containers - Although not required for now.)
- AWS account (optional, for testing deployment)
Fork the Repository
-
Fork the DentClack repo to your GitHub account.
-
Clone the forked project:
git clone https://github.com/<your-github-username>/dent-clack
-
Navigate to the project directory:
cd dent-clack
-
Install dependencies:
npm install
# or
yarn install
-
Run the development server:
npm run dev
# or
yarn dev
Open the application in your browser at http://localhost:3000
to see the result.
Back To The Top
Branching Strategy
We follow a structured branching strategy to ensure smooth integration and collaboration:
- Main Branch: Protected branch. Only the release manager can merge changes into this branch.
- Develop Branch: Integration branch where feature branches are merged after passing all tests.
- Feature Branches: For new features, branch off from
develop
with a naming convention like feature/feature-name
.
- Hotfix Branches: For critical fixes that need to go directly into
main
. Branch off from main
and use a naming convention like hotfix/hotfix-name
.
Back To The Top
Contribution Rules 📚
Before You Start Contributing:
- Like and Star the Project: As mentioned earlier, please star the GitHub repo if you haven’t already!
- Read the Documentation: Familiarize yourself with the README and Contributing Guide to understand the project structure and contribution process.
- Get Assigned: Make sure to comment on an issue before working on it and wait to be assigned.
Rules for Contributions:
- Create a branch: Work on your feature or bug fix in a new branch (follow the naming convention described above).
- Pull latest changes: Ensure your branch is updated with the latest changes from the
develop
branch.
- Follow coding guidelines: Ensure your code adheres to the Coding Guidelines.
- Submit a Pull Request (PR): Once your work is complete, submit a PR referencing the issue number.
- Review process: Wait for your PR to be reviewed. PRs must pass all tests and be approved by a collaborator before they can be merged.
How To Avoid Conflicts {Syncing your fork}
To avoid merge conflicts, sync your fork with the upstream repository regularly:
-
Add upstream remote:
git remote add upstream https://github.com/vin-jex/dent-clack
-
Verify:
git remote -v
-
Fetch and merge upstream changes:
git fetch upstream
git merge upstream/main
For more details on syncing forks, refer to GitHub’s guide.
Back To The Top
Project Structure and Detailed Methodology
For an in-depth look at the project structure, including the architecture of the frontend, backend, testing strategies, and DevOps processes, please refer to the Project Structure and Methodology Document.
This document covers:
- Frontend architecture: React components, state management, routing, and theming.
- Backend architecture: API design, database models, and security protocols.
- DevOps setup: Continuous integration, Docker setup, and cloud deployment.
- Testing methodologies: Unit testing, integration testing, and end-to-end testing.
Back To The Top
License
This project is licensed under the MIT License. For more information, see the LICENSE file.
FAQs (Frequently Asked Questions)
Author Info
Back To The Top
Top Contributors