- Create a mobile application and a backend service for personal journaling. Users should be able to write journal entries, categorize them, and view a summary of their entries.
Platform
- The application will be built using React Native. You can choose to bootstrap the project using either expo or react-native-cli.
- We prefer that the project be done using TypeScript. However, we will still accept submissions in plain Javascript.
- User Authentication:
- Allow users to sign up and log in.
- Journal Entry Management
- Add new journal entries with a title, content, category, and date.
- Edit and delete existing entries.
- Journal View
- Allow users to view a list of all their journal entries.
- Categorization
- Users should be able to categorize their entries e.g. Personal, Work, Travel, etc.
- Summary View
- Display a summary of journal entries over a selected period i.e. daily, weekly, monthly.
- Settings
- Allow users to update their username and password.
Use a simple and intuitive UI, focusing on usability and clarity. You can use pre-designed UI libraries or create your own components.
Platform
- I will use Python backend as a backend of choice
- User Management
- User registration and authentication (JWT or session-based).
- Profile management.
- Journal Entry Management
- CRUD operations for journal entries.
- Categorization of entries.
- Data Summary
- Endpoints to fetch summary data for given periods.
- Security
- Ensure all endpoints are secure and accessible only by authenticated users.
- Database
- Using MySQL as the database.
A GitHub repository containing the code for both the mobile app and backend service.
- Documentation
- Instructions on how to set up and run the backend service.
- Instructions on how to build and run the mobile app.
- API documentation detailing the endpoints and their usage.
- Day 1-2: Set up the project structure for both the mobile app and backend. Implement user authentication.
- Day 3-4: Develop CRUD operations for journal entries and implement categorization.
- Day 5: Implement the user interface and data fetching in the mobile app.
- Day 6: Testing and bug fixing.
- Day 7: Final touches, create documentation, and record the demo video.
-
Code Quality: Clean, readable, and maintainable code with appropriate use of design patterns.
-
Functionality: Completeness of the features as described.
-
User Interface: Usability and visual appeal of the mobile app.
-
Documentation: Clarity and completeness of the setup instructions and API documentation.
-
Testing: Adequate testing to ensure reliability and correctness.
-
Commit History: Please commit early & often as this shows us your process.
-
Submission Details https://forms.gle/4BhkBvY8RjZ3HjFN8