HACKTOBERFEST 2022 - 2024
DentClack is a medical web application that makes booking dental appointments easier and quicker from the comfort of your home.
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 ⭐!
- 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
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.
- 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 💙 :) !
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:
- TypeScript
- JavaScript
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.
The project is divided into multiple teams to ensure smooth progress. You can join any of these based on your interest and expertise:
- 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.
- 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.
- 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.).
- Write and maintain tests using Jest and Cypress.
- Perform code reviews and ensure code quality.
- Conduct user acceptance testing (UAT) and bug tracking.
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 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.
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 likefeature/feature-name
. - Hotfix Branches: For critical fixes that need to go directly into
main
. Branch off frommain
and use a naming convention likehotfix/hotfix-name
.
- 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.
- 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.
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.
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.
This project is licensed under the MIT License. For more information, see the LICENSE file.
-
Who can contribute?
- Anyone with a GitHub account who is signed up for Hacktoberfest.
-
How many pull requests (PRs) must I make to get the Hacktoberfest shirt?
- You need to make
four (4) accepted PRs during the Hacktoberfest event.
- Why aren't we using AWS?
- We are utilizing Cloudinary for media storage and Vercel for deployment due to their streamlined integration with our tech stack.