Welcome to the Task Module Assignment repository! This project is designed to demonstrate proficiency in both Node.js backend development and React.js frontend development. It covers essential full-stack skills such as server-side scripting, RESTful API design, data management, state management, and UI/UX design.
The backend is built using Node.js and demonstrates the following capabilities:
- Proficiency in Node.js core modules such as
http
,fs
,path
,buffer
, andexpress
. - Implementation of a basic HTTP server with routing and middleware.
- Handling of asynchronous operations using callbacks, Promises, or
async/await
.
- Design of a RESTful API with appropriate HTTP methods and endpoints.
- Implementation of CRUD (Create, Read, Update, Delete) operations for a resource.
- Demonstration of middleware, routing, and error handling techniques.
- Direct interaction with a SQL database (without ORM) to showcase SQL query proficiency.
- Implementation of data validation and data access control mechanisms.
- Writing SQL queries to retrieve, update, and delete data.
The frontend is developed using React.js and demonstrates the following capabilities:
- Creation of reusable and modular components.
- Management of component state and lifecycle methods.
- Implementation of component composition and data flow using
props
,state
, andcontext
.
- Use of state management solutions such as React's built-in state or external libraries (Redux, MobX).
- Handling of asynchronous actions and data fetching.
- Management of global application state and local component state.
- Setup of client-side routing using React Router.
- Implementation of dynamic routing and navigation between different views.
- Handling of route parameters and query strings.
- Utilization of CSS frameworks or libraries (e.g., Tailwind CSS, Bootstrap) to create a responsive and visually appealing user interface.
- Writing of clean, maintainable, and semantic HTML and CSS.
- Implementation of accessibility features and best practices.
This section integrates the backend and frontend to create a cohesive full-stack application.
- Consumption of the RESTful API developed in the Node.js backend.
- Handling of HTTP requests and responses between the frontend and backend.
- Implementation of error handling and data validation on the client-side.
- Management of data flow between the frontend and backend to ensure consistency.
- Use of appropriate state management techniques to handle real-time updates and push notifications (optional).
- Node.js and npm installed.
- MySQL database set up on cPanel or any other hosting platform.
- Basic understanding of JavaScript, Node.js, React.js, SQL, and web development.
-
Clone the repository:
git clone https://github.com/yourusername/task-list.git cd task-list
-
Set up the backend:
cd backend npm install cp .env.example .env # Edit .env file with your database credentials npm start
-
Set up the frontend:
cd ../frontend npm install cp .env.example .env # Edit .env file with your backend API URL npm start
-
Configure the database:
- Create a new MySQL database on your local system.
- Update the
.env
file in thebackend
directory with your database credentials.
-
Run the application:
- Start the backend server:
cd backend && npm start
- In a new terminal, start the frontend development server:
cd frontend && npm start
- Start the backend server:
-
Access the application: Open your web browser and navigate to
http://localhost:5173
to view the Task Module application.
- Backend tests:
cd backend && npm test
- Frontend tests:
cd frontend && npm test