/todo

Collaborative App Development Project

Primary LanguagePythonMIT LicenseMIT

Todo App

This is a simple Todo application with a React frontend and a Flask backend. The backend provides an API with JSON data for the frontend to consume and display.

Table of Contents

Project Overview

The Todo App is designed to help users manage their tasks. Users can create, read, update, and delete todo items. The frontend is built using Next.js, and the backend is built using Flask and PostgreSQL.

Project Structure

todo/
├── backend/
│ ├── app/
│ │ ├── init.py
│ │ ├── database/
│ │ │ ├── init.py
│ │ │ ├── database.py
│ │ ├── models/
│ │ │ ├── init.py
│ │ │ ├── todo.py
│ │ │ ├── user.py
│ │ ├── routes/
│ │ │ ├── init.py
│ │ │ ├── todos.py
│ │ │ ├── users.py
│ │ ├── utils/
│ │ │ ├── init.py
│ │ │ ├── config.py
│ │ │ ├── password_manager.py
│ ├── venv/
│ ├── requirements.txt
│ └── run.py
├── frontend/
├── .gitignore
├── README.md
└── docker-compose.yml

Setup Instructions

Backend

  1. Navigate to the backend/ directory.
  2. Create and activate a virtual environment:
    python3 -m venv venv
    source venv/bin/activate  # On Windows, use `venv\Scripts\activate`
  3. Install dependencies:
    pip install -r requirements.txt
  4. Run the Flask app:
    python run.py

Frontend

  1. Navigate to the frontend/ directory.
  2. Install dependencies:
    npm install
  3. Start the local development server:
    npm run dev
  4. Build the app for deployement:
    npm run build

Group Project Guidelines

  1. Collaboration: Emphasize teamwork and communication. Regularly discuss progress and challenges with the team.
  2. Original Work: Ensure that all code contributions are original and avoid plagiarism.
  3. Code Reviews: Conduct code reviews to maintain code quality and share knowledge among team members.
  4. Task Management: Use a project management tool to track tasks and assign responsibilities.
  5. Documentation: Keep documentation up-to-date to help onboard new team members and maintain clarity.
  6. Testing: Write tests for your code to ensure functionality and prevent future issues.
  7. Version Control: Use Git for version control. Create branches for features and merge them through pull requests.

API Endpoints

Here is a summary of the main API endpoints provided by the backend:

TODOS

  • GET /todos: Retrieve all todo items.
  • POST /todos: Create a new todo item.
  • GET /todos/id: Retrieve a specific todo item by ID.
  • PATCH /todos/id: Update a specific todo item by ID.
  • DELETE /todos/id: Delete a specific todo item by ID.

USERS

  • GET /users: Retrieve all user items.
  • POST /users: Create a new user item.
  • GET /users/id: Retrieve a specific user item by ID.
  • PATCH /users/id: Update a specific user item by ID.
  • DELETE /users/id: Delete a specific user item by ID.

License

This project is licensed under the MIT License. See the LICENSE file for details.