/my-calendar-app

My Calendar App is a full-stack application designed to help users manage their schedules, expenses, todos, and notes all in one place. The app provides a seamless and intuitive user interface for efficient day-to-day management and includes robust backend support for secure data handling and user authentication.

Primary LanguageJavaScript

๐Ÿ“… My Calendar App

๐Ÿ“ Overview

My Calendar App is a full-stack application designed to help users manage their schedules, expenses, to-dos, and notes all in one place. The app provides a seamless and intuitive user interface for efficient day-to-day management, along with robust backend support for secure data handling and user authentication.

โœจ Features

  • ๐Ÿ” User Authentication: Secure login and registration using JWT (JSON Web Tokens).
  • ๐Ÿ’ฐ Expense Tracking: Keep track of daily expenses with detailed categories and descriptions.
  • โœ… To-Do Management: Create, update, and manage tasks with due dates.
  • ๐Ÿ—’๏ธ Notes Management: Store and organize notes with timestamps.
  • ๐Ÿ“ฑ Responsive Design: Works across desktop and mobile devices.

๐Ÿ’ป Technologies Used

Frontend

  • โš›๏ธ React.js: JavaScript library for building user interfaces.
  • ๐Ÿ›ฃ๏ธ React Router: Declarative routing for React applications.
  • ๐ŸŒ Axios: Promise-based HTTP client for the browser and Node.js.
  • ๐ŸŽจ CSS Modules: Scoped CSS for modular and reusable styling.
  • ๐Ÿ–Œ๏ธ Material-UI: React components for faster and easier web development.
  • ๐Ÿ—‚๏ธ Context API: For state management across the application.

Backend

  • ๐ŸŸข Node.js: JavaScript runtime for server-side development.
  • ๐Ÿš€ Express: Web framework for building RESTful APIs.
  • ๐Ÿ“‚ MongoDB: NoSQL database for storing user data, expenses, to-dos, and notes.
  • ๐Ÿ”— Mongoose: ODM (Object Data Modeling) library for MongoDB and Node.js.
  • ๐Ÿ”‘ JWT (JSON Web Tokens): For secure user authentication.
  • ๐Ÿ›ก๏ธ Bcrypt.js: For password hashing.

๐Ÿš€ Deployment

  • ๐Ÿ’ป Frontend: Deployed on Vercel.
  • ๐ŸŒ Backend: Deployed on Heroku.
  • ๐Ÿ’พ Database: Hosted on MongoDB Atlas.

๐Ÿšง Getting Started

Prerequisites

Frontend:

  • โš™๏ธ Node.js (v14 or higher)
  • ๐Ÿ“ฆ npm or yarn
  • โš›๏ธ react and vite

Backend:

  • ๐ŸŸข Node.js (v14 or higher)
  • ๐Ÿ“‚ MongoDB (Atlas or local)
  • ๐Ÿ› ๏ธ Postman or any API client for testing

๐Ÿ›  Installation

1. Clone the Repository

git clone https://github.com/divyansh-2005/my-calendar-app.git
cd my-calendar-app

2. Setting up the Backend

  1. Navigate to the backend directory:

    cd backend
  2. Install dependencies:

    npm install
  3. Create a .env file in the root directory of the backend and add the following environment variables:

    MONGO_URI=your_mongo_db_connection_string
    JWT_SECRET=your_jwt_secret
    PORT=5000
    
  4. Start the backend server:

    npm run dev

    The server will run on http://localhost:5000.

3. Setting up the Frontend

  1. Navigate to the frontend directory:

    cd frontend
  2. Install dependencies:

    npm install
  3. Start the frontend development server:

    npm run dev

    The frontend will run on http://localhost:3000.

Project Structure

my-calendar-app/
โ”œโ”€โ”€ backend/           # Backend Node.js and Express API
โ”‚   โ”œโ”€โ”€ models/        # Mongoose models
โ”‚   โ”œโ”€โ”€ routes/        # Express routes
โ”‚   โ”œโ”€โ”€ controllers/   # Request handlers
โ”‚   โ”œโ”€โ”€ middleware/    # Middleware functions
โ”‚   โ”œโ”€โ”€ config/        # Configuration files
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ frontend/          # Frontend React application
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ components/  # Reusable components
โ”‚   โ”‚   โ”œโ”€โ”€ pages/       # Page components
โ”‚   โ”‚   โ”œโ”€โ”€ context/     # Context API for state management
โ”‚   โ”‚   โ”œโ”€โ”€ services/    # Axios services for API calls
โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ””โ”€โ”€ ...
โ””โ”€โ”€ README.md          # Project README file

๐Ÿ“‘ API Endpoints

Refer to the Backend Documentation for detailed information on available API endpoints.

๐Ÿงช Testing

Backend

Use Postman or any other API client to test backend endpoints. Set the headers to include x-auth-token for authenticated requests.

Frontend

Ensure that the backend server is running. Use your browser to access the frontend on http://localhost:3000 and interact with the application.

๐Ÿ›  Deployment

Backend

  1. Push the backend code to your Heroku repository.
  2. Set the environment variables on Heroku using the .env file.

Frontend

  1. Deploy the frontend on Vercel by linking your repository.
  2. Ensure the frontend is configured to communicate with the deployed backend.

๐Ÿ“œ License

This project is licensed under the MIT License.

๐Ÿ™Œ Contributing

Contributions are welcome! Please fork the repository and create a pull request with your changes. For more information on how to contribute, please refer to our CONTRIBUTING.md.

Our Valuable Contributors

Contributors


For any questions or issues, feel free to contact me or raise an issue in the repository.