Skip to content

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.

Notifications You must be signed in to change notification settings

divyansh-2005/my-calendar-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

62 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“… 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.

About

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.

Topics

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published