0% found this document useful (0 votes)
21 views8 pages

AI-Powered Career Counseling App Guide

The Oration AI Software Engineer assignment evaluates candidates' technical skills in modern web development with AI integration, requiring the creation of a career counseling chat application using Next.js, TypeScript, and various technologies. Key steps include project setup, application architecture design, core feature implementation, and deployment, with bonus points for advanced features like authentication and enhanced UI/UX. Candidates are encouraged to leverage AI tools throughout the development process and must submit their work via a public GitHub repository and a live Vercel deployment link within a week.

Uploaded by

Mayank Mishra
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views8 pages

AI-Powered Career Counseling App Guide

The Oration AI Software Engineer assignment evaluates candidates' technical skills in modern web development with AI integration, requiring the creation of a career counseling chat application using Next.js, TypeScript, and various technologies. Key steps include project setup, application architecture design, core feature implementation, and deployment, with bonus points for advanced features like authentication and enhanced UI/UX. Candidates are encouraged to leverage AI tools throughout the development process and must submit their work via a public GitHub repository and a live Vercel deployment link within a week.

Uploaded by

Mayank Mishra
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Introduction

Welcome to the Oration AI Software Engineer assignment! This practical


exercise is designed to evaluate your technical skills, problem-solving
abilities, and understanding of modern web development technologies
with AI integration.

Oration AI is a powerful platform that empowers businesses to create AI


agents for customer conversations. With Oration AI, you can build agents
that handle conversations through voice calls, email, and chat—all with
the warmth and intelligence of human interaction. The platform uses
advanced speech recognition, language processing, and voice synthesis
technologies that work together seamlessly. You can browse our website
to know more about our company. [Link]

As a Software Engineer at Oration AI, you'll work on building and


maintaining our web applications, implementing new features, optimizing
performance, and ensuring scalable, maintainable code. This assignment
will test your ability to work with [Link], React with ShadCN component
library, tRPC, TanStack Query, TypeScript, and AI integration while
following modern development practices.

Steps
Step 1: Project Setup
1. Create a new [Link] application using TypeScript (strictly
TypeScript, no JavaScript)
2. Initialize a public GitHub repository for your project
3. Set up your development environment with the required tech stack:
a. [Link] (latest stable version)
b. TypeScript
c. tRPC for backend API
d. TanStack Query for data fetching
e. Your SQL choice of database (PostgreSQL, SQLite, etc.)
f. ORM of your choice (bonus points for Drizzle or Prisma)
4. You can ask any doubts or queries (if any) by hitting “reply all” on
the email you received the assignment.
Step 2: Application Architecture
Design and implement a career counseling chat application with the
following structure:

1. Frontend Components:
a. Chat interface with message history
b. Chat session management, the user should be able to see all
previous chats and should be able to continue where they left
off.
c. Responsive design for mobile and desktop
2. Backend API:
a. tRPC routers for chat and other application operations
b. Database operations for chat persistence
c. AI integration for career counseling responses using OpenAI
APIs. You may use [Link] to host any free LLM chat
model.
3. Database Schema:
a. Users table (if implementing authentication)
b. Chat sessions table
c. Proper relationships and indexing
d. Any other table or schema you deem necessary

Step 3: Core Features Implementation


Implement the following core functionality:

1. AI Career Counselor Chat:


a. Create an AI chat interface that acts as a career counselor
b. The AI should provide meaningful career guidance and advice
c. Implement proper conversation flow and context management
d. Use any AI API of your choice (OpenAI, Anthropic, Together,
Cohere, OpenRouter etc.
2. Message Persistence:
a. All messages in each chat session should be saved to the
database
b. Implement proper message threading and timestamps
c. Handle both user and AI messages
3. Chat History:
a. Users can start new chat sessions
b. Each session should have a clear topic or name.
c. Users can view their past chat sessions
d. Display chat history with proper pagination
e. Allow users to continue previous conversations

Step 4: Advanced Features (Bonus Points)


Implement any of the following features for additional points:

1. Authentication System:
a. User registration and login
b. You can use any common auth package like nextAuth or
Better Auth if you understand the concepts thoroughly.
c. Protected routes
d. Use any JavaScript/TypeScript authentication package
2. Enhanced UI/UX:
a. Real-time typing indicators
b. Message status indicators (sent, delivered, etc.)
c. Dark/light theme toggle
d. Proper loading states and error handling

Step 5: Deployment and Testing


1. Vercel Deployment:
a. Deploy your application to Vercel
b. Ensure all environment variables are properly configured
c. Test the deployed version thoroughly
2. Database Setup:
a. Set up your production database on neon, supabase or any
other free Database provider.
b. Ensure database connectivity from your deployed app
3. Testing:
a. Test all chat functionality
b. Verify data persistence across sessions
c. Test responsive design on different devices

Step 6: Code Quality and Documentation


1. Code Quality:
a. Follow TypeScript best practices
b. Implement proper error handling
c. Use consistent code formatting
d. Add meaningful comments where necessary
2. README Documentation:
a. Create a comprehensive [Link] file
b. Include setup instructions
c. Add screenshots or demo videos

Step 7: Using AI Tools and Submission


Preparation
AI-Powered Development (Highly Encouraged):

We strongly encourage and expect you to leverage AI tools throughout


your development process. Think of it this way: AI is writing the code
for you, but it is still YOUR code - which means you must understand
each and every line in the repository you submit.

Recommended AI Tools:

 AI IDEs: Cursor, Windsurf, or any AI-powered code editor of your


choice
 UI Generation Tools: Lovable, [Link], or similar tools for rapid UI
development
 Code Assistants: GitHub Copilot, Codeium, or any other coding
assistant
 Any other AI tool: Feel free to use any AI tool that helps you be
more productive

Important Guidelines:

 Use AI to accelerate your development, but ensure you can explain


every implementation decision
 Understand the architecture and design patterns used in your
codebase
 Be prepared to discuss your AI tool usage and code understanding
in the follow-up interview
 Document any interesting AI-assisted solutions or approaches you
used

Scoring Criteria (100 points)


 Application Functionality (25 points): Working chat application
with AI integration and proper conversation flow
 Technical Implementation (25 points): Proper use of [Link],
tRPC, TanStack Query, and TypeScript
 Database Design (15 points): Well-designed schema with proper
relationships and data persistence
 Code Quality (15 points): Clean, readable, and well-structured
code following best practices
 Documentation (10 points): Clear README and one-page
technical document
 Deployment (10 points): Successfully deployed and functional
application on Vercel

Bonus Points:

 Authentication implementation (+5 points)


 Use of Drizzle or Prisma ORM (+3 points)
 Advanced UI/UX features (+3 points)
 Performance optimizations (+4 points)

How to Submit
1. Complete all steps
2. Prepare your submission:
a. Public GitHub repository URL
b. Live Vercel deployment URL
3. Submit via the provided form: Assignment Submission Form
4. Submission deadline: Please submit the assignment within one week
from the date you receive the assignment.

Next Steps

The next step will be an interview round where we’ll discuss the
assignment and your projects. We will go through the codebase and try to
understand the depth of knowledge and the understanding of the core
concepts used in the projects and assignment.

There will only be one interview round after you send the assignment
before we take the decision.
Submission Checklist:
✅ [Link] application created with TypeScript

✅ Public GitHub repository with clean commit history

✅ Working chat functionality with AI integration

✅ Database integration with proper schema

✅ tRPC and TanStack Query implementation

✅ Chat history and session management

✅ Vercel deployment completed

✅ [Link] with setup instructions

Make sure to test your deployed application thoroughly before submitting!

Frequently Asked Questions


(FAQs)
Q: Can I use AI tools and AI code editors to assist me
with development?

A: Absolutely! We encourage you to use AI tools like Cursor, Windsurf,


Crae, Lovable, v0, or any other AI-powered development tools. Just make
sure you understand and can explain every line of code you submit.

Q: Which database should I choose?

A: You can use any database of your choice. Popular options include
PostgreSQL (via Supabase or Neon), SQLite (for simplicity). Choose based
on your familiarity and project requirements.

Q: What AI API should I use for the career counselling


feature?

A: You can use any AI API such as OpenAI GPT, Anthropic Claude, or
others. Make sure to handle API keys securely and implement proper error
handling.
Q: Do I need to implement real-time chat features?

A: Real-time features are not required but are considered bonus points.
Focus on core functionality first, then add real-time features if time
permits.

Q: How complex should the career counselling AI be?

A: Focus on creating a functional chatbot that can provide meaningful


career advice. It doesn't need to be extremely sophisticated, but should
demonstrate proper AI integration and conversation handling.

Q: Can I use UI component libraries?

A: Yes! You can use any UI component library like Shadcn/ui, Chakra UI,
Mantine, or others. This can help you focus on functionality rather than
basic styling.

Q: What if my application has bugs or doesn't work


perfectly?

A: Document any known issues and include how you would fix them given
more time. We value your problem-solving approach and understanding of
the code over perfect functionality.

Q: Should I implement user authentication?

A: Authentication is not required but gives you bonus points. If you choose
not to implement it, you can use a simple session-based approach to
maintain chat history.

Q: How should I handle sensitive information like API


keys?

A: Use environment variables for all sensitive information. Never commit


API keys to your repository. Document the required environment variables
in your README.

Good luck! This assignment is your opportunity to showcase your full-


stack development skills, understanding of modern web technologies, and
ability to integrate AI into web applications. We're excited to see what you
create!

Contact: If you have any questions about this assignment, please reach
out to careers@[Link].

Common questions

Powered by AI

While authentication is not mandatory, implementing it provides bonus points. The assignment suggests using common authentication packages like nextAuth or Better Auth for user registration and login, with protected routes. If not implementing full authentication, a simple session-based approach can be used to maintain chat history .

Advanced UI/UX features enhance user interaction and engagement while providing a polished interface. Features like real-time typing indicators, message status indicators, theme toggles, and loading/error displays contribute to a better user experience. While not mandatory, these features are awarded bonus points and demonstrate the developer's attention to detail and ability to enhance usability .

The recommended strategy for handling API keys securely is to use environment variables, ensuring that sensitive information is not committed to the repository. Proper documentation of the required environment variables should also be included in the README, guiding users on how to set up their environment correctly while maintaining security .

The application must be deployed on Vercel with all environment variables configured correctly. Key testing requirements include ensuring database connectivity, functional chat operations, data persistence, and responsiveness across different devices. The deployed version should undergo comprehensive testing to confirm the correctness and reliability of all implemented features before submission .

Code quality is emphasized through the adherence to TypeScript best practices, maintaining clean and readable code, implementing proper error handling, and using consistent formatting. The inclusion of meaningful comments where necessary is also recommended. Code quality is a significant portion of the final assessment, as it ensures the software is understandable, maintainable, and less error-prone, contributing to 15 out of 100 points in the scoring criteria .

Database design is crucial for ensuring proper relationships and data persistence in the chat application. A well-designed schema facilitates efficient storage and retrieval of chat sessions and messages, handles indexing correctly for performance optimization, and supports the application's scalable and maintainable architecture. The importance is further elevated by the assessment's scoring criteria, which allocate significant points to database design .

The assignment strongly encourages using AI tools to accelerate development by assisting in coding tasks, UI generation, and providing coding advice. Tools like AI IDEs, UI generation tools, and code assistants enhance productivity and allow engineers to focus on more complex problem-solving. However, developers are expected to understand every line of AI-generated code, highlighting the importance of comprehension and the strategic selection of AI tools based on project needs .

The assignment allows flexibility in database selection, recommending options like PostgreSQL, SQLite, or others based on familiarity and project requirements. This flexibility supports varied developer backgrounds and expertise, accommodating differences in knowledge while emphasizing the need for proper schema design, data persistence, and relationship management, which are crucial for the application’s performance and scalability .

AI-powered development strategies are integral to this assignment, facilitating enhanced productivity and innovative problem-solving. By utilizing AI IDEs and code assistants, developers can expedite routine tasks and focus on complex problem-solving. The emphasis on AI tool usage also showcases the ability to adapt to modern technologies and integrate sophisticated solutions effectively, demonstrating expertise in cutting-edge development methodologies .

The core functionalities required include creating an AI chat interface that acts as a career counselor, providing meaningful career guidance, and managing proper conversation flow and context. Additionally, message persistence of all chat sessions in the database, implementing proper message threading with timestamps, and the ability for users to view their past chat sessions with options to continue previous conversations are essential .

You might also like